javascript - AngularJS Controller 重新加载

标签 javascript jquery angularjs controller ionic-framework

我正在使用 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/

相关文章:

javascript - Jquery 切换类并单击不起作用

javascript - 单击时使用 jQuery 更改图像不起作用

javascript - 我如何检测 Number 变量的变化?

javascript - Node.js 有效地导出非匿名函数(所以 eslint 停止提示)

javascript - 如何在 Bootstrap 中使用左右箭头按钮创建图像 slider

angularjs - 如何在 Ionic/Cordova 中集成 Adob​​e Creative SDK Feather Editor

AngularJS:当 ng-click 上的值更改时,ng-change 不起作用

javascript - 似乎无法让我的 div 标签以我想要的方式溢出

jQuery SlideToggle 一次一个 div 而不是全部独立

javascript - Angular 查询参数中的句点