我有两种状态:'联系人'和'contacts.all',这是previuos的子状态。我希望这个子状态从服务器预加载数据:
.state('contacts', {
url: "/contacts",
controller: 'ContactsCtrl'
})
.state('contacts.all', {
url: "/all",
resolve: {
initialContacts: function (contactsCRUD) {
return contactsCRUD.getAll().$promise;
}
}
})
然后将其注入ContactsCtrl控制器:
function ContactsCtrl($scope, initialContacts) {
$scope.Contacts = initialContacts || {};
}
我确实需要仅在'contacts.all'中预加载这些数据,而不是'contacts'状态。如果我按原样保留此代码并尝试导航这些状态中的任何一个,那么我将得到一个注入错误,说“initialContacts”的“未知提供者”,因为控制器似乎在initialContacts已知之前被实例化。 什么是正常的做法?我知道我可以为父状态添加一个“resolve”选项,并将initialContacts设置为{},但我认为这不是一个好习惯。