Angular js (1.4) 在 ng-repeat 中使用三元运算符来显示不同的 html?
Angular js (1.4) Using Ternary operator inside ng-repeat to show different html?
<tr ng-repeat="(field, value) in vm.params track by $index">
<td>{{::field}}</td>
<td hkey="{{field}}"> {{value.include('http')?<a href ="{{value}}">{{value}}</a>:{{value}} }}</td>
</tr>
在上面的 Angular 视图中,我希望值字段检查该值是否包含字符串 'http',如果是,则在其周围包裹一个锚标记,以便其可点击的其他显示常规文本值。
效果不佳,这是它的表现,
如何正确执行此操作?
我试图像这样从控制器中做到这一点
vm.params["Source Link"]?vm.params["Source Link"] = '<a href='+vm.params['Source Link']+'>link</a>':""
但数据以字符串形式显示,而不是 html,我看到它带有锚标记和所有内容。
vm.params 看起来像这样
{
Provider Name: "MARIO BLOUNT",
Provider State: "WV",
Provider City: "BRIDGEPORT",
Action Date: "06/03/2014",
Provider Source: "HEALTH CARE FRAUD FILE",
Provider Type: "PHARMACIST",
Action Description: "CHARGED BY INDICTMENT WITH CONSPIRACY TO ILLEGALLY
PRESCRIBE AND DISTRIBUTE OXYCODONE",
Clinic Name: "BEST CARE PHARMACY; MARIO DAVID BLOUNT RPH",
Source Link: "https://www.dea.gov/press-releases/201",
}
三元运算符不适用于这样的模板,它必须看起来像这样...
<td ng-if="value.includes('http')" hkey="{{field}}"> <a href ="{{value}}">{{value}}</a></td>
<td ng-if="!value.includes('http')" hkey="{{field}}">{{value}}</td>
但要小心,因为这对变更检测不是很好,因为您 运行 includes
在每个变更检测周期检查 2xN 参数。
如果你能可靠地做到:
ng-if="field === 'Source Link'"
相反,那样会更好,或者至少使用 value.startsWith('http')
会更好
<tr ng-repeat="(field, value) in vm.params track by $index">
<td>{{::field}}</td>
<td hkey="{{field}}"> {{value.include('http')?<a href ="{{value}}">{{value}}</a>:{{value}} }}</td>
</tr>
在上面的 Angular 视图中,我希望值字段检查该值是否包含字符串 'http',如果是,则在其周围包裹一个锚标记,以便其可点击的其他显示常规文本值。
效果不佳,这是它的表现,
如何正确执行此操作?
我试图像这样从控制器中做到这一点
vm.params["Source Link"]?vm.params["Source Link"] = '<a href='+vm.params['Source Link']+'>link</a>':""
但数据以字符串形式显示,而不是 html,我看到它带有锚标记和所有内容。
vm.params 看起来像这样
{
Provider Name: "MARIO BLOUNT",
Provider State: "WV",
Provider City: "BRIDGEPORT",
Action Date: "06/03/2014",
Provider Source: "HEALTH CARE FRAUD FILE",
Provider Type: "PHARMACIST",
Action Description: "CHARGED BY INDICTMENT WITH CONSPIRACY TO ILLEGALLY
PRESCRIBE AND DISTRIBUTE OXYCODONE",
Clinic Name: "BEST CARE PHARMACY; MARIO DAVID BLOUNT RPH",
Source Link: "https://www.dea.gov/press-releases/201",
}
三元运算符不适用于这样的模板,它必须看起来像这样...
<td ng-if="value.includes('http')" hkey="{{field}}"> <a href ="{{value}}">{{value}}</a></td>
<td ng-if="!value.includes('http')" hkey="{{field}}">{{value}}</td>
但要小心,因为这对变更检测不是很好,因为您 运行 includes
在每个变更检测周期检查 2xN 参数。
如果你能可靠地做到:
ng-if="field === 'Source Link'"
相反,那样会更好,或者至少使用 value.startsWith('http')