我正在尝试让UI路由器有详细的消息视图,这里是代码:
.state('app.messages.detail', {
url: 'messages/{id}',
templateUrl: 'templates/views/message.html',
controller: function($scope, sharedProperties, $stateParams) {
console.log($stateParams);
messages = sharedProperties.getMessages();
$scope.message = messsages.name[$stateParams.id];
}
})
这是消息数组:
var messages = {
"Deputy":
{
"name": "Deputy",
"message": ["Test", "Whey", "I See you!"]
},
"SOCO":
{
"name": "SOCO",
"message": ["Second Test", "Does this actually work?"]
}
};
但是当我转到/#/messages/Deputy
时,我会被重定向到 /
(如果找不到页面,会有重定向说明转到/
)
答案 0 :(得分:1)
很高兴看到状态层次结构的完整图片。因为:
但是,当我转到
/#/messages/Deputy
时,我会被重定向到/
(有一个重定向说明去/
< / strong>如果页面不 <)>
可能与父状态有关,我希望它已定义/messages
// parent
.state('app.messages', {
url: '/messages',
// child should not repeat the parent's *url* part, it is already there
.state('app.messages.detail', {
//url: 'messages/{id}',
url: '/{id}',
因为没有这种调整(使用加倍/messages
定义),我们需要像这样的网址
/#/messages/messages/Deputy
答案 1 :(得分:0)
运行此代码时,您应该在控制台上看到类似的错误:
无法阅读财产&#39;代理&#39;未定义的
我认为真正的消息定义应该是:
$scope.message = messsages[$stateParams.id];