Я использую angularJS с ui-router для управления своими маршрутами. Я использую тот же контроллер (который имеет функции для управления своим пользователям, как добавлять, редактировать и удалять) для некоторых различных состояний или маршрутов, как следующее:AngularJS ui-router поведение
.state('manage', {
abstract: true,
url: '/manage',
views: {
'': {
templateUrl: 'views/layout.html'
}
}
})
.state('state1', {
url: '/list-users',
controller: 'ManageCtrl',
templateUrl: 'views/pages/manage/list-users.html',
})
.state('state2', {
url: '/add-user',
controller: 'ManageCtrl',
templateUrl: 'views/pages/manage/add-user.html',
})
Во-первых, это правильно? Какова наилучшая практика сделать что-то вроде моего дела?
Во-вторых, Каково поведение ui-router, изменилось ли оно каждый раз при изменении состояния, он повторно инициализирует контроллер? потому что я использую $caheFactory
в мой контроллер, как:
$scope.cache = $cacheFactory('manageUsers');
Когда состояние изменилось, ошибка CacheId 'manageUsers' is already taken!
произошло.
$ cacheFactory следует использовать как услугу. Вы пытаетесь настроить его внутри своего контроллера? – tpie
Я использую его как услугу и внедряю его в свой контроллер 'app.controller ('ManageCtrl', ['$ cacheFactory', function ($ cacheFactory) {// некоторая логика здесь}]);' –