Javascript isn';角度ui路由器中的绝对命名不是可选的吗?
我有3个这样的模板 一, 此设置在此应用程序中不起作用,除非我将baseState.body更改为Javascript isn';角度ui路由器中的绝对命名不是可选的吗?,javascript,angularjs,angular-ui,angular-ui-router,Javascript,Angularjs,Angular Ui,Angular Ui Router,我有3个这样的模板 一, 此设置在此应用程序中不起作用,除非我将baseState.body更改为 .state('baseState', { url: "", views: { "header@": { "tempalateUrl: "/2", "controller": "2Ctrl" } } }) 让它成为一个绝对的名
.state('baseState', {
url: "",
views: {
"header@": {
"tempalateUrl: "/2",
"controller": "2Ctrl"
}
}
})
让它成为一个绝对的名字,我想这是可以接受的文件暗示我不必这样做,这样做是有责任的(见链接),一个我不想承担,如果我不必
在没有绝对名称的情况下进行相对复杂的嵌套之前,我已经做过应用程序,所以不确定为什么它在这里不起作用,有什么想法吗?不确定,如果我确实看到了真正的问题……但是,正如你已经知道并证明的那样-绝对命名是(事实上唯一)解决正确
ui视图
的方法。引用您的链接:在幕后,每个视图都会被指定一个绝对名称。这应该是解释。没有@
(相对命名)的语法也只是代码中的一种语法糖。没有别的了。视图名称始终基于其绝对版本进行计算。代码段:if(name.indexOf('@')<0)name+='@'+state.parent.name代码>是的,这是必需的。我认为文档中没有明确说明这一点,但如果没有绝对的命名,有些功能目前无法工作。
<p>hello from header</p>
<p>hello from body</p>
$stateProvider
.state('baseState', {
url: "",
views: {
"header": {
"tempalateUrl: "/2",
"controller": "2Ctrl"
}
}
})
.state('baseState.body', {
url: "/body",
views: {
"body": {
"tempalateUrl: "/3",
"controller": "3Ctrl"
}
}
})
.state('baseState', {
url: "",
views: {
"header@": {
"tempalateUrl: "/2",
"controller": "2Ctrl"
}
}
})