【问题标题】:AngularJS controller reloadingAngularJS控制器重新加载
【发布时间】:2015-01-20 09:52:00
【问题描述】:

我正在使用 ionic 运行 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'
    }
  }
})

有人知道为什么控制器第二次没有加载吗? 看起来该页面只是隐藏并再次显示在 $state.go 上。

【问题讨论】:

    标签: javascript jquery angularjs controller ionic


    【解决方案1】:

    控制器在每个视图中初始化一次。当您传递控制器选项时,您正在指定它的构造方式。更改视图会使控制器保持存在。

    【讨论】:

      【解决方案2】:

      ui.router.state.$state

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

      希望对你有帮助。

      【讨论】:

      • 改成这个但不起作用。 $state.go('tab.voorraad', {}, {reload : true});
      猜你喜欢
      • 1970-01-01
      • 2014-02-03
      • 2014-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      相关资源
      最近更新 更多