angularjs - 使用 ng-controller 时如何让 ui-router 解析工作?

标签 angularjs angular-ui-router

使用 ng-controller 时是否可以让解析工作?我更喜欢使用 ng-controller,因为它允许我访问所有 1.6+ 生命周期钩子(Hook),例如 $onDestroy,在状态 obj 上定义 Controller 时我会松开它。

笨蛋: https://plnkr.co/edit/2FJ0dGtFQtBtcQ0uVbTi?p=preview

在下面的示例中,“main”中加载的 View 使 myData 可用于注入(inject),但是在 main2 中, Controller 是使用 ng-controller 定义的,并且 myData 不再可用于注入(inject)。

$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-router 状态实例化:

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 .

关于angularjs - 使用 ng-controller 时如何让 ui-router 解析工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54816948/

相关文章:

angularjs - Satellizer Facebook 登录未返回正确的范围

asp.net-mvc - AngularJS 找不到 XSRF-TOKEN cookie

javascript - 如何在 Angular-UI-Router 中的所有命名 View 中更新作用域变量

javascript - 如何检查缩小是否出错?

javascript - 如果我有jQuery背景,那么“AngularJS中的思考”吗?

javascript - karma 测试 - 服务注入(inject)错误

javascript - 如何重新调整我的指令以在两个不同的范围内工作?

angularjs - UI-Router 在页面刷新时给出无法获取错误

javascript - Angular UI 路由器、 Controller 未定义

angularjs - 如何使用具有多个模块的 ui-router 管理状态