我有一个包含清单中很多项目的Json文件,每个文件都有多个要显示的条件。这些条件取决于用户在使用应用程序时将设置的代码上的其他变量,因此应根据该项显示或不显示每个项目。这是html:
<tr ng-repeat="item in checkList" class="{{item.isCritic}}" ng-if="item.conditions">
<td uib-tooltip-html="{{item.tip}}" tooltip-placement="top" tooltip-trigger="'mouseenter'"><img ng-src="{{item.url}}" alt="{{item.text}}" ng-click="checkImage();"><span class="info checklistInfo" ng-bind-html="item.text"></span></td>
</tr>
Json:
[ {
"id": 1,
"url": "img/checkList/1.png",
"isCritic": "checkListCritico",
"checked": "false",
"text": "text1",
"tip": "_",
"conditions":"vm.conditionA=='NOTEBOOK'" },{
"id": 2,
"url": "img/checkList/2.png",
"isCritic": "checkListCritico",
"checked": "false",
"text": "text2",
"tip": "_",
"conditions":"vm.conditionA=='NOTEBOOK' && (vm.conditionB=='HP' || vm.conditionB=='Sony' || vm.conditionA=='AllInOne' || vm.conditionB=='dell' || vm.conditionB=='LG' || vm.conditionB=='Samsung')" }, {
"id": 3,
"url": "img/checkList/3.png",
"isCritic": "checkListCritico",
"checked": "false",
"text": "text3",
"tip": "_",
"conditions":"vm.conditionA=='DESKTOP' && (vm.conditionC=='MOUSE')" }]
我已经尝试了很多但是无法使ng-if能够使用Json文件中的条件,有没有办法做到这一点?。
答案 0 :(得分:0)
ng-if
将评估为true
,因为如果您需要验证此条件,则需要对其进行评估,然后再将其传递给ng-if
并返回{{1}或} true
要执行此操作,您可以使用false
eval(stringCondtion)
$scope.isVisible = function (stringCondtion) {
return eval(stringCondtion);
}
应该以与在控制器中运行它的方式相同的方式从JSON返回,因为它将在控制器范围内运行。