我正在使用 ionic 运行 AngularJS Web 应用程序。
我有一个主页,可以在其中看到文章列表。当我单击此按钮时,您将看到一个带有选项卡的单独页面。 当我从首页转到选项卡页时, Controller 首次加载。
$scope.selectArt = function(artikel) {
api.setCurrItem(artikel.artnr);
$state.go('tab.voorraad');
}
Controller 将被加载。
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'
}
}
})
有人知道为什么 Controller 第二次无法加载吗? 看起来该页面只是隐藏并再次显示在 $state.go 上。
最佳答案
Controller 每个 View 都会初始化一次。当您传递 Controller 选项时,您正在指定它的构造方式。更改 View 会使 Controller 仍然存在。
关于javascript - AngularJS Controller 重新加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28042244/