我已完成的家庭作业 - 在本网站上查看了近8-9个ui-sref相关问题(如何,复杂的例子等),相关的笨蛋,Scotch.io等。我可以'似乎弄清楚为什么我的代码不起作用。我花了6到7个小时调试应用程序,但我似乎无法找到问题。
我的页面分为 a)layout.html - 这会强制引导网格系统 b)app-navbar - 导航栏在顶部(代码是现在的bootstrap示例的剪切 - 粘贴...) c)app-accordion - 使用ui bootstrap手风琴来显示n个项目 d)app-right - 右侧包含一些UI元素和一个ui-grid
所有元素的ui-view正确呈现...即"索引"我的控制器正在调用state。我在app-navbar.html中添加了几个简单的按钮,只是为了调试......
<ul class="nav nav-pills">
<li role="presentation" class="active"><a ui-sref="view1">View1</a></li>
<li role="presentation"><a ui-sref="view2">View2</a></li>
</ul>
<div ui-view="view-test"></div>
这是我的控制器代码片段:
.state('view1', {
url: '/view1',
views: {
'view-test': {
templateUrl: 'view1.html',
controller: 'View1Ctrl'
}
}
})
当我将鼠标悬停在按钮上时,我看到... / view1和2显示在浏览器的页脚上,但是当我点击它们时没有任何反应。目前,手风琴仍然使用href,但如果我使用ui-sref它会停止工作。一旦我越过这个,那就是下一个问题......你如何使用ui-sref来控制手风琴这样的控制?
有关可能发生的事情的任何想法?插件:http://plnkr.co/edit/c89j3eFvYyguMt0QznAI
答案 0 :(得分:1)
有updated working plunker。我做了2次更改。
首先,我升级了您的version to UI-Router 0.2.13 (修复了一些问题,只是总是使用最新版本)
其次,我在状态定义中添加了缺失的部分:谁是我的父母
.state('view1', {
url: '/view1',
parent: 'index', // here is explicit setting who is parent
views: {
'view-test': {
templateUrl: 'view1.html',
controller: 'View1Ctrl'
}
}
})
检查here
EXTENDED,根据以下评论,文档中提供的内容很少
国家可以互相嵌套。有几种嵌套状态的方法:
- 使用&#39;点符号&#39; 。例如
.state('contacts.list', {})
。- 使用
ui-router.stateHelper
从嵌套状态树构建状态。由@marklagendijk提供。- 将
parent
属性与父名称一起使用为字符串。例如:parent: 'contacts'
- 将
parent
属性与父对象一起使用。例如,parent:contacts(其中&#39; contacts&#39;是stateObject)
...
Parent
Property using State Name String 或者,您可以通过父属性指定州的父级。
$stateProvider
.state('contacts', {})
.state('list', {
parent: 'contacts'
});