gpt4 book ai didi

javascript - Angular ui 路由器 : child state not accessing parent controller

转载 作者:行者123 更新时间:2023-11-29 10:39:20 24 4
gpt4 key购买 nike

我正在我的 Angular 应用程序中使用 ui.router 的嵌套 View 。这是我的 .config 的相关部分:

$urlRouterProvider.otherwise('/');

$stateProvider
.state('home', {
url: '/',
templateUrl: 'app/components/home/home.html',
controller: 'HomeController'
})
.state('admin', {
url: '/admin',
templateUrl: 'app/components/admin/admin-dashboard.html',
controller: 'AdminCtrl'
})
.state('admin.page-1', {
templateUrl: 'app/components/admin/page-1/page-1.view.html',
controller: 'AdminCtrl'
})

发生的事情是,尽管 admin.page-1 View 被正确加载到 admin View 中,但它似乎无法访问 AdminCtrl.

这是 Controller :

(function() {
'use strict';

angular
.module('peaches')
.controller('AdminCtrl', Controller);

Controller.$inject = ['$scope'];

function Controller($scope) {
var vm = this;

vm.test = "Hello."
console.log(vm.test);

vm.organization = {
name: "Western Fund"
};

activate();

function activate() {

}
}
})();

当我转到 admin.page-1 时,console.log(vm.test) 确实有效,但它似乎没有加载到我的嵌套 View 中, page-1.view.html,这里:

<div class="col-xs-12">
<h1>{{vm.test}}</h1>
</div>

我做错了什么?

最佳答案

正如 Apédémak 和 dhavalcengg 所说,我没有在我的路由中定义 controllerAs,所以 vm 没有定义。这解决了问题:

.state('admin', {
url: '/admin',
templateUrl: 'app/components/admin/admin.html',
controller: 'AdminCtrl as vm'
})

关于javascript - Angular ui 路由器 : child state not accessing parent controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31804329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com