当我将url更改为“/nameDisplay”时,似乎无法显示我的“nameDisplay”组件。它没有显示任何错误,只是没有将模板插入到ui-view中。如果我在'state‘中使用模板而不是组件,那么它就可以工作,否则它什么也不会显示。
我使用的版本是: angular - 1.5.8 angular ui router - 0.3.1
angular.module('app.nameDisplay', [uiRouter])
.component('nameDisplay', {
controller: function(){
this.name = "Keir Beckett";
this.age = 24;
this.changeInfo = function(){
this.name = "Golash Bista";
this.age = 66;
}
},
template: "" +
"<div>" +
"<h2>{{$ctrl.name}}</h2>" +
"<h4>{{$ctrl.age}}</h4>" +
"<button ng-click='$ctrl.changeInfo()'>Change Info</button>" +
"</div>"
}).config(($stateProvider, $urlRouterProvider) => {
$stateProvider.state('nameDisplay', {
url: '/nameDisplay',
component: 'nameDisplay'
})
.state("otherDisplay", {
url: '/otherDisplay',
template: '<h1>Other Display</h1>'
});
$urlRouterProvider.otherwise('/');
})
.name;
发布于 2016-08-11 21:45:54
直接在ui-router配置中使用组件仅适用于ui-router 1.0.0及更高版本。因此,您应该升级到(目前仍在)测试版,或者使用0.3.x样式来包含使用<name-display></name-display>
模板的组件。
类似的问题请看我的答案:Angular 1.5 - UI-Router, Resolve Object returning undefined values
https://stackoverflow.com/questions/38897995
复制相似问题