Angularjs 如何正确使用嵌套管线修复以下示例?
所以,看来我毕竟没有得到Angularjs 如何正确使用嵌套管线修复以下示例?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,所以,看来我毕竟没有得到ui路由器 下面是一个失败的例子: 实际的文件结构是: app/ app.js index.html main/ main.html header/ header.html footer/ footer.html sections/ content1/ content1.html content2/ ... index.html有一个简单的 main
ui路由器
下面是一个失败的例子:
实际的文件结构是:
app/
app.js
index.html
main/
main.html
header/
header.html
footer/
footer.html
sections/
content1/
content1.html
content2/
...
index.html
有一个简单的
main.html
具有:
<div ui-view="header"></div>
<div ui-view></div>
<div ui-view="footer"></div>
因此,我认为这意味着转到“/”将显示页眉、页脚,并在未命名的ui视图中自动插入内容
事实并非如此。我做错了什么?为了让它快速工作(不是预期的),我刚刚在页脚中添加了一个锚,现在它是
这意味着:
在“我的父视图”中搜索未命名视图
页脚视图是状态“app.main.content1”
的父视图,因此我们可以将其作为目标
还有其他选择
最可能的意图:,状态定义已更改:
.state("app.main.content1", {
url: "/",
views: {
"@app": {
templateUrl: "content1.html"
}
}
因此,现在我们通过绝对命名将app
状态及其视图锚定
作为目标。见:
viewname@statename
,其中viewname是view指令中使用的名称,state name是州的绝对名称,例如contact.item。您还可以选择以绝对语法编写视图名称
最后,我们甚至可以通过一个抽象状态和一个子级达到相同的效果,检查它:
现在,所有UI路由器magic正在根状态def中发生。我们首先以root(index.html)unmaed视图为目标,注入main.html
。下一步-其他视图通过“header@app“-绝对命名
那将是最合适的方式 你在app和app.main中都设置好了吗?我不知道你在这里说什么……)这太棒了,我需要瞄准@app
!只有两个澄清:为什么在第一个示例中页脚视图是内容视图的父视图?有没有更好的方法来做类似我现在正在做的事情?(app
和app.main
状态看起来几乎是多余的)我会说(就我的观点而言)两个抽象的父母太多了。我们只需要一个家长就能解决这个问题。看看我的最新答案如果这有帮助的话,那就太好了。享受奇妙的UI路由器
;)如果不是太多,我可以麻烦你吗?:)@Radim@fusio-如果我知道的话,我愿意帮助你。。。我检查了一下已经有答案了。。。由chris(UI路由器开发人员)。。。所以这应该是你需要的。。。拜托,如果这对你不起作用。。。让我知道。不确定我是否能帮上忙,但我会尽力。。。
<div>
im footer
<div ui-view=""></div>
</div>
.state("app.main.content1", {
url: "/",
templateUrl: "content1.html"
});
.state("app.main.content1", {
url: "/",
views: {
"@app": {
templateUrl: "content1.html"
}
}
$stateProvider
.state("app", {
url: "",
abstarct: true,
views: {
"" : {
templateUrl: "main.html",
},
"header@app": {
templateUrl: "header.html"
},
"footer@app":{
templateUrl: "footer.html"
}
}
})
.state("app.content1", {
url: "/",
templateUrl: "content1.html",
});