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

AngularJS通过表达式有条件地显示内容,angularjs,Angularjs,我有一个表单,由AngularJs通过一个JSON对象生成,该对象返回一个select名称和值数组。代码如下,运行良好: <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"> <se

我有一个表单,由AngularJs通过一个JSON对象生成,该对象返回一个select名称和值数组。代码如下,运行良好:

<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>

{{site.ItemName}
全部的
{{item.SelectText}
因此,它目前正在从后端通过PHP生成的1个JSON对象生成两个select下拉列表。我现在还需要它在表单上生成一些复选框,因此我将这些复选框添加到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>

全部的
{{item.SelectText}
然后在复选框的新代码上显示相反的内容。我试过上面的方法,但不起作用。考虑到这一点,我可能需要对实际的ng repeat设置另一个条件,这样当我们循环检查复选框时,它不会对select下拉HTML执行操作

这有意义吗?还是一种疯狂的做法?我是否应该创建一个单独的app.controller并调用api以获取复选框?我试图在一个JSON对象中恢复所有表单HTML,以避免多次调用

谢谢


中午。

ng show
需要表达式,而不是插值

试一试


使用的变量将在角度范围上下文中进行评估

谢谢。工作完美。
ng-show="site.ItemName != 'checkboxes'"