我正在运行带有离子的AngularJS Web应用程序。
我找到了一个页面,我看到了一个文章列表。当我点击它时,你会得到一个带有标签的单独页面。 当我从首页转到标签页时,控制器首次加载。
$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'
}
}
})
任何人都知道为什么控制器第二次没有加载? 看起来页面只是隐藏并再次出现在$ state.go。
答案 0 :(得分:1)
每个视图初始化一次控制器。传递控制器选项时,您将指定它的构造方式。更改视图会使控制器存在。
答案 1 :(得分:1)