AngularJS通过表达式有条件地显示内容

问题描述:

我有一个由AngularJs通过JSON对象生成的表单,该对象返回一个选择名称和值的数组。代码如下,并且运行良好:AngularJS通过表达式有条件地显示内容

<div ng-cloak ng-repeat="site in form.json" class="form-group"> 
    <label class="control-label col-md-3">{{site.ItemName}}</label> 
    <div class="col-md-6"> 
    <select class="form-control select2"> 
     <option value="show-all">All</option> 
     <option ng-repeat="item in site['SelectList' + ($index + 1)]" value="{{item.SelectValue}}">{{item.SelectText}}</option> 
    </select> 
    </div> 
</div> 

所以它目前在通过PHP后端产生1个JSON对象生成两个选择下拉菜单。我现在需要它在表单上生成一些复选框,以便将这些复选框添加到由PHP生成的数组中。这些JSON将保持与当前选择(选择名称,选择值)相同的格式。附加数据将被附加到当前JSON对象的末尾,所以我只需要使用class =“col-md-6”> div来创建条件。我有一个值返回到表达式{{site.ItemName}}这将是完美的过滤,但我不明白我可以如何使用ng-show这个工作。理想情况下,我需要在当前div上这样的东西:

<div ng-show="{{site.ItemName}} !== 'checkboxes'" class="col-md-6"> 
    <select class="form-control select2"> 
     <option value="show-all">All</option> 
     <option ng-repeat="item in site['SelectList' + ($index + 1)]" value="{{item.SelectValue}}">{{item.SelectText}}</option> 
    </select> 
    </div> 

然后在新的代码相反的复选框。我已经尝试了以上,但它不工作。考虑一下,我可能会需要另外一个有关实际ng-repeat的条件,所以当我们循环检查复选框时,它不会在选择下拉HTML中进行操作。

这是否有意义?或者这是一个疯狂的方法?我应该创建一个单独的app.controller并调用api来选择复选框吗?我试图将所有的表单HTML都放回到单个JSON对象中以避免多次调用。

谢谢,

中午。

ng-show期望的表达,而不是内插

尝试使用将角度范围上下文中评估

+0

由于

ng-show="site.ItemName != 'checkboxes'" 

变量。完美的作品。 –