UI-路由器状态控制器不更新范围
UI-Router state controller doesnt update scope
我正在使用 UI-router 来控制单页应用程序的状态。我有一个很大的状态链,我缩小到这些:
$stateProvider
.state('app', {
url: "/",
abstract: true
})
.state('app.main', {
url: "/main",
abstract: true
})
.state('app.main.users', {
url: "/users",
abstract: true,
controller: 'UsersController',
controllerAs: 'uc'
})
.state('app.main.users.list', {
url: "/list",
templateUrl: "list.html",
});
假设此 app.main.users 是 CRUD 的抽象状态,它将对所有操作使用相同的控制器。
问题是来自子控制器的 "list.html" 文件无法看到来自控制器的值。
我已经为该问题提供了一个 plunkr 示例:Plunkr
完整代码如下:
var myapp = angular.module('myapp', ["ui.router"])
myapp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state('app', {
url: "/",
abstract: true
})
.state('app.main', {
url: "/main",
abstract: true
})
.state('app.main.users', {
url: "/users",
abstract: true,
controller: 'UsersController',
controllerAs: 'uc'
})
.state('app.main.users.list', {
url: "/list",
templateUrl: "list.html",
});
})
myapp.controller('UsersController', usersController);
function usersController() {
console.log("UsersController instantiated");
var vm = this;
vm.user = 'username';
}
如果你有什么想法,请告诉我。我找不到解决办法。
谢谢!
我已经解决了问题。
我在状态的概念中遗漏了一些东西。首先,我需要一个 on 我的 app.main 状态,以便它可以呈现 app.main.users 状态。我的控制器声明也是错误的。
这 Plunkr 正在处理所需的场景。
感谢您的帮助。
我正在使用 UI-router 来控制单页应用程序的状态。我有一个很大的状态链,我缩小到这些:
$stateProvider
.state('app', {
url: "/",
abstract: true
})
.state('app.main', {
url: "/main",
abstract: true
})
.state('app.main.users', {
url: "/users",
abstract: true,
controller: 'UsersController',
controllerAs: 'uc'
})
.state('app.main.users.list', {
url: "/list",
templateUrl: "list.html",
});
假设此 app.main.users 是 CRUD 的抽象状态,它将对所有操作使用相同的控制器。
问题是来自子控制器的 "list.html" 文件无法看到来自控制器的值。
我已经为该问题提供了一个 plunkr 示例:Plunkr
完整代码如下:
var myapp = angular.module('myapp', ["ui.router"])
myapp.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/");
$stateProvider
.state('app', {
url: "/",
abstract: true
})
.state('app.main', {
url: "/main",
abstract: true
})
.state('app.main.users', {
url: "/users",
abstract: true,
controller: 'UsersController',
controllerAs: 'uc'
})
.state('app.main.users.list', {
url: "/list",
templateUrl: "list.html",
});
})
myapp.controller('UsersController', usersController);
function usersController() {
console.log("UsersController instantiated");
var vm = this;
vm.user = 'username';
}
如果你有什么想法,请告诉我。我找不到解决办法。 谢谢!
我已经解决了问题。
我在状态的概念中遗漏了一些东西。首先,我需要一个 on 我的 app.main 状态,以便它可以呈现 app.main.users 状态。我的控制器声明也是错误的。
这 Plunkr 正在处理所需的场景。
感谢您的帮助。