我使用的是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对象上的一个函数,并用参数调用它。