使用ng-controller时,如何使ui-router解析为工作?

时间:2019-02-21 22:05:00

标签: angularjs angular-ui-router

使用ng-controller时能否获得解析度?我更喜欢使用ng-controller,因为它允许我访问所有1.6个以上的生命周期挂钩,例如$ onDestroy,在状态obj上定义控制器时会松动它。

柱塞: https://plnkr.co/edit/2FJ0dGtFQtBtcQ0uVbTi?p=preview

在下面的示例中,加载到“ main”中的视图使myData可用于注入,但是在main2中,控制器是使用ng-controller定义的,而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'];
        }
    }
});

1 个答案:

答案 0 :(得分:2)

通过ui路由器状态实例化:

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

通过ng-controller实例化:

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

DEMO on PLNKR