AngularJS控制器重装

时间:2015-01-20 09:52:00

标签: javascript jquery angularjs controller ionic

我正在运行带有离子的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。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

ui.router.state.$state

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

我希望它可以帮到你。