单击时,嵌套状态执行控制器

时间:2015-01-15 17:32:45

标签: angularjs angular-ui-router

我正在使用Angular的UI路由器。我有两个嵌套状态使用相同的控制器。当我通过ui-sref点击从state1进入state2时,控制器被调用并重置我的所有变量。我希望控制器只被调用一次。

.state('GN.state1', {
    url: '/createGNForm',
    templateUrl: 'app/createGNForm/createGNForm.html',
    controller: 'GNCtrl'
})
.state('GN.state2', {
    url: '/newChapter/{chapterID}',
    templateUrl: 'app/createGNForm/createNewChapter.html',
    controller: 'GNCtrl'
})

2 个答案:

答案 0 :(得分:2)

扩展teleaziz的答案:

    .state('GN', {
        url: '/GN',
        abstract: true, 
        template: '<div ui-view></div>',
        controller: 'GNCtrl'
    })
    .state('GN.state1', {
        url: '/createGNForm',
        templateUrl: 'app/createGNForm/createGNForm.html',
    })
    .state('GN.state2', {
        url: '/newChapter/{chapterID}',
        templateUrl: 'app/createGNForm/createNewChapter.html'
    })

答案 1 :(得分:1)

具有抽象父状态并嵌套您想要在其下使用相同控制器的所有状态。