正在计算Angular JS路由路径



我使用的是AngularJS 1.2。使用参数构建路线路径的正确方法是什么?字符串串联似乎是唯一的方法,但它似乎并不正确。

假设我有这条路线

$routeProvider.when('/my-route/:param1/:param2', ...);

我可以手动构建这样的路线:

$location.path('/my-route/' + param1 + '/' + param2);

我希望我能做这样的事情:

$route.goTo('/my-route/:param1/:param2', {
   param1: param1,
   param2: param2
});

我不允许更改为使用ui-router

我不久前发现了一些可能会有所帮助的东西,在这里找到了。我已经用过几次了,到目前为止,它似乎运行得很好。

这样做的主要目的是将"format"函数添加到字符串原型中(如果它还没有的话),并允许您以与.NET"string.format()"调用相同的方式调用它。

代码:

if (!String.prototype.format) {
  String.prototype.format = function() {
    var args = arguments;
    return this.replace(/{(d+)}/g, function(match, number) { 
      return typeof args[number] != 'undefined'
        ? args[number]
        : match
      ;
    });
  };
}

用法:

$location.path(('/my-route/{0}/{1}').format(param1, param2);
//Assuming that param1 and param2 are defined and valid data types

理论上,您可以将这个函数作为String对象上的一个函数,并用参数调用它。