ui-router 为锚标记ui-sref-active提供了一个漂亮的功能。当相关路由或任何子路由处于活动状态时,它会添加一个类。
我想使用相同的规则向DOM添加元素,例如:
<ul class="books" ng-controller="TreeController">
<li ng-repeat="book in books">
<a ui-sref="book({id: book.id})" ui-sref-active="active">
{{book.title}}
</a>
<!-- NG-IF BELOW IS THE CODE IN QUESTION -->
<ul class="chapters" ng-if="UI-SREF-ACTIVE">
<li ng-repeat="chapter in chapters(book.id)">
我可以用{
替换ng-if="UI-SREF-ACTIVE"
我不能使用CSS邻接兄弟规则a.active + ul { display: block; }
。我必须等待创建元素,因为chapters(book.id)
必须延迟加载。
我也不能使用$state.is('book',{id:book.id})
。对于子路线,它不会返回true。