角度UI路由器是否要求解析中使用的密钥名称在所有状态中都是唯一的

时间:2014-12-11 17:55:23

标签: angularjs angular-ui-router

documentation for resolve并未指定是否存在关于键名选择的问题。

因此,如果我有类似以下的代码,那么控制器会获得相同的承诺或正确的承诺吗?

...
$stateProvider.state('myState', {
   controller: 'ControllerA',
   resolve:{
     promiseObj:  function($http) {
        return $http({method: 'GET', url: '/someUrl'});
     }
   }
}).state('otherState', {
   controller: 'ControllerB',
   resolve: {
     promiseObj: function($http) {
        return $http({method: 'GET', url: '/someOtherUrl'});
     }
   }
});


...
.controller('ControllerA', ['promiseObj', function(promiseObj) {...}])
.controller('ControllerB', ['promiseObj', function(promiseObj) {...}])

1 个答案:

答案 0 :(得分:0)

可以重复使用结算名称(当然要小心)。他们甚至可以在孩子的决心中被覆盖。孩子的决心甚至可以取决于父母的决心。

$stateProvider.state('myState', {
   controller: 'ControllerA',
   resolve:{
     promiseObj:  function($http) {
        return $http({method: 'GET', url: '/someUrl'});
     }
   }
}).state('otherState', {
   controller: 'myState.Child',
   resolve: {
     promiseObj: function($http, promiseObj) { // the parent resolve data is injected as promiseObj
        return $http({method: 'GET', url: '/someOtherUrl'});
     }
   }
});