我對AngularJs頗爲陌生,但我對使用多個插值符號的更復雜的條件模板有特殊需求。我使用與https://docs.angularjs.org/api/ng/service/ $ interpolate相同的示例。
我需要這樣的東西:
[[ {{greeting}}, {{name}} || Hello, {{name}} || Hello, stranger ]]
這應該被理解爲一個多條件模板,展示了第一個片段,如果$ scope.greeting和$ scope.name定義,第二個如果只有$ scope.name被定義,否則第三個。
這個想法是,在符號[[]]之間的碎片。符號使用帶有AllOrNothing的標準插值符號進行插值,從左到右進行,直到第一個成功,並確保最後一個成功。
我知道,這可以用的東西做類似
<span ng-if='greeting && name">{{greeting}}{{name}}</span>
<span ng-if='name && !greeting">Hello, {{name}}</span>
<span ng-if='!name">Hello, stranger</span>
但這種方法非常繁瑣,需要確定哪些複雜的布爾表達式可確保只有一個跨度顯示,並增加了雜散跨度只是因爲你需要一個ng-if指令的地方纔能訪問DOM。
謝謝你提供的所有建議。