我在指令中有一个链接,目前看起来像这样:
<a href="" ng-href="{{tile.type === 'article' ? '/article/' + tile.slug : ''}}" ng-click="tile.type === 'video' && openVideo({id: tile.videoId})"></a>
这里的逻辑是这样的:
- 如果tile.type
为article
,则链接应创建href值,如果点击则应转到此相关网址
- 如果tile.type
为video
,则链接应将href值保留为空并在单击时执行openVideo
函数
问题是,对于视频链接,href值被完全删除,因此链接会丢失本机链接样式,例如鼠标光标在悬停时更改。我也希望使用ui-sref
而不是ng-href
,但我似乎无法在那些条件语句中使用。
这样做的正确方法是什么?
答案 0 :(得分:0)
只需使用ng-if:
<a ng-if="tile.type === 'article'" ng-href="{{'/article/' + tile.slug}}"></a>
<a ng-if="tile.type === 'video'" href="" ng-click="openVideo({id: tile.videoId})"></a>
你也可以使用ui-sref
答案 1 :(得分:0)
选项1:仅使用ng-click并通过$ state.go在ng-click函数内处理链接。
选项2:使用https://christopherthielen.github.io/ui-router-extras/#/sticky为视频制作syntetic parallell路线,或在$ stateChangeStart中截取视频路线更改(打开视频并防止状态更改)。