如何将<u>标签添加到作为三元表达式结果的html内联角度变量中?

时间:2017-01-10 21:29:29

标签: html angularjs

所以我现在正在进行以下工作。

<label>
    Make {{$ctrl.tcTemplate.isLibrary ? $ctrl.tcTemplate.name : "this item"}} a Library item:
    <toggle ng-change="changed(); $ctrl.eraseName();" ng-model="$ctrl.tcTemplate.isLibrary;" off="False" on="True" type="checkbox"></toggle>
</label>

基本上是你将开关拨到&#34; true&#34;我想让标签动态显示你可以输入的项目的名称,如果开关是&#34; true&#34;所以它会读到

将{{ctrl.tcTemplate.name}}设为库项目:true。

如果开关是&#34;假&#34;该项目没有名称,所以我希望标签只显示,

制作&#34;此项目&#34;图书馆项目:错误

所以我设置了三元语句以检查开关是真还是假,如果是真显示我的变量,如果为false则显示字符串,&#34;此项&#34;

如果开关为true,并且显示变量值,我试图将其加下划线。

所以这里有4个我试过的变种。

{{$ctrl.tcTemplate.isLibrary ? <u>$ctrl.tcTemplate.name</u> : "this item"}}
{{$ctrl.tcTemplate.isLibrary ? '<u>' + $ctrl.tcTemplate.name + '</u>' : "this item"}}
{{$ctrl.tcTemplate.isLibrary ? <u>{{$ctrl.tcTemplate.name}}</u> : "this item"}}
{{$ctrl.tcTemplate.isLibrary ? <u>{{$ctrl.tcTemplate.name}\}</u> : "this item"}}

第一个将整个三元表达式转换为字符串,整行显示在我的标签中

第二个返回{{$ ctrl.tcTemplate.isLibrary? &#39;&#39; + $ ctrl.tcTemplate.name +&#39;&#39; :&#34;此项&#34;}}作为整个字符串文字,空引号到空引号的内容加下划线。

三,四,我真的不知道我在想什么,或者在做什么,我只是搞乱了,并认为失败的尝试值得一提。它们作为字符串文字返回,并减去在尝试四中使用转义字符。

所以关于如何在三元语句等于true时如何获取该变量以显示下划线的任何想法?

1 个答案:

答案 0 :(得分:2)

不要使用三元语句。请改用ng-if,ng-show或ng-switch:

Make <u ng-if="$ctrl.tcTemplate.isLibrary">{{ $ctrl.tcTemplate.name }}</u> 
     <span ng-if="!$ctrl.tcTemplate.isLibrary">this item</span>
  a Library item: