我想找到一种为路线设置resolve
的简洁方法。
从我所看到的有三种主要方法:
声明全局函数(不好)
匿名函数(如果逻辑复杂或者我需要在多个地方使用相同的函数,则会出错)
在控制器功能上设置方法(这对我不起作用,因为我不喜欢将控制器作为单独的函数声明,而是我只做module(...).controller(...);
有没有更好的方法来执行此操作,尤其是如果我需要在类似路由之间共享的解析。 (例如/ people和/ people /:personID)
感谢。
答案 0 :(得分:3)
如何在.constant
阶段创建.config
并注入它?如果你看AngularJS documentation for .constant,你会发现你可以将函数定义为常量。
所以,你应该可以这样做:
app.constant("Resolver", {
"MessageUtils": function () {
return {
get: function (message) {
return "MUTIL: " + message;
}
}
}
});
然后你会用它作为:
app.config(function ($routeProvider, Resolver) {
$routeProvider.when("/home", {templateUrl: ..., resolve: Resolver, ...})
...
这是一个工作的掠夺者:
http://plnkr.co/edit/psuYHu4rtlp4o42ZgqVs?p=preview
我的angularAMD项目中有类似的请求,我创建了一个名为.route
的函数来帮助我在定义路由时设置resolve属性。这是代码的link。