2015-01-20 10 views
0

Я запускаю приложение AngularJS с ионным.Перезагрузка контроллера AngularJS

У меня есть заголовок, где я вижу список статей. Когда я нажму на это, вы получите отдельную страницу с вкладками. Когда я перехожу с главной страницы на вкладку, контроллер загружается в первый раз.

$scope.selectArt = function(artikel) { 
    api.setCurrItem(artikel.artnr); 
    $state.go('tab.voorraad'); 
} 

Контроллер будет загружен.

app.controller('ArtikelsCtrl', function($scope, $state, $location, api, artikels) { 
    console.log("loaded"); 
}; 

У меня есть подставка, где я могу вернуться на главную страницу. Когда я нажимаю на элемент, функция selectArt будет загружена снова, но «ArtikelsCrtl» больше не будет загружаться.

App.js

$stateProvider 
.state('artikels', { 
    url: '/artikels', 
    templateUrl: 'app/artikels/artikels.html', 
    controller: 'ArtikelsCtrl' 
}) 

.state('tab', { 
    url: '/tab', 
    abstract: true, 
    templateUrl: 'app/_shared/tabs.html' 
}) 

.state('tab.voorraad', { 
    url: '/voorraad', 
    views: { 
    'tab-voorraad': { 
     templateUrl: 'app/voorraad/voorraad.html', 
     controller: 'VoorraadCtrl' 
    } 
    } 
}) 

Каждый получил представление о том, почему контроллер не загружается на 2-й раз? Похоже, что страница просто скрывается и появляется снова на $ state.go.

ответ

1

Контроллеры инициализируются один раз для каждого вида. Когда вы передаете опцию контроллера, вы указываете, как она построена. Изменяющийся вид выходит из контроллера.

1

ui.router.state.$state

$state.go(to, params, {reload : true})

Я надеюсь, что это может помочь вам.

+0

Изменен, но не работает. '$ state.go ('tab.voorraad', {}, {reload: true});' – JeffreyM

Смежные вопросы