我想在浏览器跟随 ui-router 动态创建的链接之前验证某些条件。
我正在调查,$rootscope.$on('$stateChangeStart', ..)
但我无法controller.$scope
从那里访问。我还需要在应用程序的几个地方使用它,这会很麻烦。
请记住,ui-sref
它与ui-sref-active
(一起工作)相关联,所以我无法删除ui-sref
,也就是说,$state.$go('some-state')
在调用 with 的函数中使用ng-click
。
条件应该在 a$scope function
和 on内进行评估on-click event
(转换前可以取消它)
我需要这样的东西:
<li ui-sref-active="active">
<a ui-sref="somestate" ui-sref-if="model.validate()">Go Somestate</a>
</li>
我试过:
<li ui-sref-active="active">
<a ui-sref="somestate" ng-click="$event.preventDefault()">Go Somestate</a>
</li>
<li ui-sref-active="active">
<a ui-sref="somestate" ng-click="$event.stopImmediatePropagation()">Go Somestate</a>
</li>
和
<li ui-sref-active="active">
<a ui-sref="somestate">
<span ng-click="$event.stopPropagation();">Go Somestate</span>
</a>
</li>
甚至
<li ui-sref-active="active">
<a ui-sref="somestate" onclick="return false;">Go Somestate</a>
</li>
但不起作用。