我有 2 条路由共享一个控制器,一条需要在加载视图之前解析数据,另一条不需要解析的数据。
路由段示例:
...
when('/users', {
controller: 'UsersCtrl',
templateUrl: '/partials/users/view.html',
resolve: {
resolvedData : ['Accounts', function(Accounts) {
return Accounts.get();
}]
}
}).
when('/users/add', {
controller: 'UsersCtrl',
templateUrl: '/partials/users/add.html'
})
...
控制器示例:
app.controller('UsersCtrl', ['$scope', 'Helper', 'resolvedData',
function($scope, Helper, resolvedData) {
// this works for the first route, but fails for the second route with
// unknown "resolvedDataProvider"
console.log(resolvedData);
}]);
有什么方法可以resolvedData
在不显式使用解析名称作为依赖项的情况下获取控制器?那么可以进行检查吗?
使用 $injector 不起作用。我想做类似的事情:
if ($injector.has('resolveData')) {
var resolveData = $injector.get('resolveData');
}
resolveData
但是,即使对于具有集合('/users')的路由,这也不起作用:
app.controller('UsersCtrl', ['$scope', 'Helper', '$injector',
function($scope, Helper, $injector) {
// this does not work -> fails with the unknown "resolvedDataProvider" as well
$injector.get('resolvedData');
}]);
这可以在angularjs中完成吗?还是我应该创建一个新控制器?
谢谢你。