无法过渡到抽象状态'"当尝试在侧边栏中突出显示父元素时
"Cannot transition to abstract state'" when trying to highlight parent in sidebar
我使用angular UI-Router和bootstrap折叠面板来构建样式指南的侧边栏。我的侧边栏是"works"但是我得到了一个
Error: Cannot transition to abstract state 'parent'
,当单击子状态时。在我的实际解决方案中,有许多具有子分组的父母,并且父母确实是抽象的(即。它们不代表物理页面或状态)。我知道我不能直接链接到父状态,我不相信我,我只需要在父面板中设置他们的ui-sref
,这样我就可以通过设置ui-sref-active
属性让父状态保持打开状态。
我有一个例子运行在活塞:http://plnkr.co/edit/bnvGcaOvzW4que8g3vh7?p=preview
参考代码:
angular.module('app', ['ui.router'])
.config(function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise("/");
$stateProvider
.state('home', {
url: "/",
templateUrl: "layout.html"
})
.state('parent', {
abstract: true,
url: '/parent',
templateUrl: "layout.html"
})
.state('parent.child', {
url: "/child",
templateUrl: "child.html"
})
});
layout.html
<div class="container-fluid">
<div class="row">
<div class="col-xs-3">
<a ui-sref="home">Home</a>
<div class="panel-group" id="sidebar">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#sidebar" data-target="#parent"
class="collapsed">Parent</a>
</h4>
</div>
<div id="parent" ui-sref="parent" class="panel-collapse collapse" ui-sref-active="in">
<div class="list-group">
<a ui-sref="parent.child" ui-sref-active="active" class="list-group-item">Child</a>
</div>
</div>
</div>
</div>
</div>
<div class="col-xs-9">
<div ui-view></div>
</div>
</div>
</div>
短答:
从你的代码中删除ui-sref="parent"
。这个特定的ui-sref
属性并不是ui-sref-active
按预期工作所必需的。
长答:
ui-sref-active
的工作原理是查找所有具有ui-sref
的子元素,并将这些元素添加到附加到该元素的states
数组中。在$stateChangeSuccess
上,每个元素循环遍历该数组,如果找到与该数组匹配的状态,则应用该类。
例如:
<ul>
<li ui-sref-active="open">
<a ui-sref="app.home">Link</a>
<ul>
<li>
<a ui-sref="app.home.this"></a>
</li>
<li>
<a ui-sref="app.home.that"></a>
</li>
<li>
<a ui-sref="app.home.whatever"></a>
</li>
<li>
<a ui-sref="temp"></a>
</li>
</ul>
</li>
</ul>
在上面的例子中,假设app
是一个抽象。所有4个链接都将触发父元素上的open
类,因为它们包含在父元素中。它们不都是app.home
结构的一部分也没关系。
相关文章:
- 如何在显示侧边栏时禁用背景,单击除侧边栏之外的任何位置都会关闭侧边栏
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 向下滚动页面时在侧边栏中显示部分标题(也许使用 BS scrollspy?
- 仅当侧边栏完全展开时显示文本
- 点击显示鼠标的Jquery离开隐藏侧边栏
- 位置和侧边栏不会显示在谷歌地图中
- 侧边栏子菜单元素未按预期显示/隐藏
- 如何添加仅在单击或悬停时显示的隐藏侧边栏
- 根据页面突出显示侧边栏中的链接
- 如何在滚动时显示侧边栏,并在页面顶部隐藏侧边栏
- 为什么这个侧边栏数据没有进入ajax,为什么没有定义显示ui的滑块值
- 在谷歌位置api的侧边栏中显示照片
- 在谷歌地图上添加侧边栏,显示'的多边形属性
- 如何保持显示/隐藏侧边栏的设置
- Wordpress:以100%侧边栏宽度显示小部件
- 侧边栏导航没有显示
- 侧边栏隐藏/显示按钮,跟随光标鼠标
- 如何在侧边栏中使用js单击后保持导航菜单高亮显示
- 侧边栏导航与切换隐藏/显示和字体真棒
- ie9及以下版本显示滑出侧边栏菜单时的问题