ng-href 中的三元表达式

ternary expression in ng-href

ng-href 中有一个复杂的(大概)三元表达式,它似乎不起作用。

ng-href="item.hasTrailer ? 
'#/{{getTemplateName(routeParams.mainCategoryId).detail}}
/{{routeParams.mainCategoryId}}/{{routeParams.categoryId}} 
/{{item.trailer_media_uri[langCtrl.currentLanguage.isoCode]}}' : 
'#/{{getTemplateName(routeParams.mainCategoryId).detail}}
/{{routeParams.mainCategoryId}}/{{routeParams.categoryId}}
/{{item.media_uri}}'"

如果我将整个表达式包裹在双卷曲中

 "{{item.hasTrailer ... item.media_uri}}'}}" 

Angular 抛出 lexerr 一条关于不必要引用的消息。我应该尝试通过 ng-href 实现它(然后请告诉我正确的 way/syntax),还是应该将此逻辑移动到此页面的控制器中?

我认为它应该有效:

ng-href="{{item.hasTrailer ? 
'#/' + getTemplateName(routeParams.mainCategoryId).detail
+ '/' + routeParams.mainCategoryId + '/' + routeParams.categoryId 
+ '/' + item.trailer_media_uri[langCtrl.currentLanguage.isoCode] : 
'#/' + getTemplateName(routeParams.mainCategoryId).detail
+ '/' + routeParams.mainCategoryId + '/' + routeParams.categoryId
 + '/' + item.media_uri}}"

它太复杂了 :) 我认为你应该把它放在 controller.I 我也不确定 angular 表达式是否可以是多行的。