Angular UI路由器在抽象状态父路由时,子状态控制器不可访问

时间:2016-01-13 01:16:10

标签: javascript angularjs angular-ui-router angular-ui-router-extras

我正在使用UI路由器,我的2个州使用相同的视图。我的方法如下。

<button ui-sref="test.state1">

.config(['$stateProvider', function ($stateProvider) {
  $stateProvider
    .state('test.state1', {
      url: '/mystate/start',
      template: require('./myPage.html'),
      controller: function ($scope, myService) {
        console.log('2 ctrl called ');
        myService.myMethod().then(function () {
          console.log('3 calling my method ');
        });
      },
      resolve: {
        testOne: [function () {
             //service call 
        }],
        testTwo: [function () {
             //service call
        }] 
      }
    }).state('test.state2', {
    url: '/mystate/end',
    template: require('./myPage.html'),
    controller: 'MyController as myctr'
  });
}])

我可以按1,2和3的顺序看到我的控制台日志,首先解析数据,然后点击内联控制器。

我正在尝试将其更改为使用抽象参数。

$stateProvider
    .state('test', {
        abstract: true,
        url: '/mystate',
        template: require('./myPage.html')
    })
    .state('test.state1', {
        url: '/start',
        controller: function ($scope, myService) {
          console.log('2 ctrl called ');
          myService.myMethod().then(function () {
            console.log('3 calling my method ');
          });
        },
        resolve: {
          testOne: [function () {
             //service call 
        }],
        testTwo: [function () {
             //service call
        }] 
        }
    })
    .state('test.state2', {
        url: '/end',
        controller: 'MyController as myctr'
    })

现在我只能看到解析,并且不会调用内联ctrl。这是我在设置中缺少的东西吗?文档here尚无定论。

0 个答案:

没有答案