0

我正在使用 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 没有被调用。这是我在设置中缺少的东西吗?这里的文档是不确定的。

4

0 回答 0