Angularjs 使用ui sref的站点导航,在不可用时如何删除ui sref属性

Angularjs 使用ui sref的站点导航,在不可用时如何删除ui sref属性,angularjs,routing,angular-ui-router,angularjs-routing,ui-sref,Angularjs,Routing,Angular Ui Router,Angularjs Routing,Ui Sref,我使用ng repeat设置了如下导航,效果非常好 <a ui-sref="{{link.Route}}" ng-click="clickLink(link)"> <span class="title"> {{link.Text}} </span><span class="selected"></span> </a> {{link.Text} 但是,我的导航项经常有子链接,这意味着父链接实际上不是导航链接,它只

我使用ng repeat设置了如下导航,效果非常好

<a ui-sref="{{link.Route}}" ng-click="clickLink(link)">
    <span class="title"> {{link.Text}} </span><span class="selected"></span>
</a>

{{link.Text}
但是,我的导航项经常有子链接,这意味着父链接实际上不是导航链接,它只是用来扩展和查看子链接。但有时它是一个链接,没有可显示的子链接


问题是对于那些特殊情况,当没有可用状态时,我需要一起删除ui sref,因为根本不应该有链接。如果存在,则会引发“错误:无效状态引用“””


当状态不可用时,如何删除ui sref?

有条件地创建ui sref属性

<a ng-attr-ui-sref="{{ link.Route ? link.Route : false }}">
    ...
</a>

...

您可以对表达式使用
{{}

标记

ui-sref="{{expression ? '.childState' : '.'}}"
将创建自己的状态路由,因此当单击它时,它将不重定向到何处


希望这能对您有所帮助,谢谢。

完整显示
ng repeat
和model
链接。如何创建稍后重复的状态层次结构?无论是何种情况,您都可以使用
ng if
ng开关
来区分是显示
(使用
ui sref
)的链接样式还是显示父链接样式。可能重复:此代码中的正确答案是:如果您能提供帮助,请查看下面的错误<代码>错误:无法从状态“”解析“false”
错误:无效状态引用“我建议阅读此处的解决方案:致Ricky:外部链接解决方案的哪一部分解决了“无链接”问题?您的意思是什么“将创建自己的状态路由,因此在单击它时,它将重定向到无位置。”,单击链接时我收到错误-“无法转换到抽象状态”。“这是一个例外(或者您也可以将其称为规则),按设计,您无法导航到抽象状态。请您解释一下?如何“禁用”链接而不出错?目前我的脏解决方案是使用e.preventDefault()调用函数您无法禁用锚定标记,因此event.prevenDefault是执行此操作的方法之一。您可以使用的另一种方法是,不使用ui sref,而是使用
ng单击调用函数并使用
$state.go