在使用NG控制器时,如何使UI路由器解决工作问题?

时间 2019-02-22
阅读 15
点赞 0
收藏 0
连接riegersn

在使用NG控制器时,是否可以获得解决方案?我更喜欢使用NG控制器,因为它允许我访问所有1.6+生命周期钩子,例如$OnDestroy,在状态obj上定义控制器时,我会松开它。

抢劫犯:https://plnkr.co/edit/2FJ0dGtFQtBtcQ0uVbTi?p=preview

在下面的示例中,“main”中加载的视图使mydata可用于注入,但是在main2中,控制器由ng控制器定义,mydata不再可用于注入。

$stateProvider.state('home', {
    url: '/',
    views: {
        'main': {
            controller: 'MainCtrl',
            controllerAs: 'vm',
            templateUrl: 'main.html'
        },
        'main2': {
            templateUrl: 'main2.html'
        }
    },
    resolve: {
        myData: function() {
            return ['My', 'resolve', 'is', 'working'];
        }
    }
});
建议答案

使用UI路由器状态实例化:

app.controller('MainCtrl', function(myData) {
    console.log("MainCtrl")
    console.log(myData);
    console.log(this);
    this.message = myData.join(' ');
});

安装了NG控制器:

app.controller('MainCtrl2', function($scope) {
    console.log("MainCtrl2");
    console.log($scope);
    this.message = $scope.$resolve.myData.join(' ');
});

这个DEMO on PLNKR.

👍 0