Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度使用[ng if]选项选择_Angularjs_Html Select - Fatal编程技术网

Angularjs 角度使用[ng if]选项选择

Angularjs 角度使用[ng if]选项选择,angularjs,html-select,Angularjs,Html Select,我使用的是angular 1.5,我试图对从microsoft graph返回的数据使用一些逻辑,它是完全动态的(键和值),并创建一个下拉列表。我使用一个输入框,但似乎无法使用一个选择框 工作的输入框 <input type="text" name="{{prop.name}}" ng-model="vm.filterValues[prop.name]"> <div ng-repeat="uniqueValue in vm.schemaExtentionsUniqueV

我使用的是angular 1.5,我试图对从microsoft graph返回的数据使用一些逻辑,它是完全动态的(键和值),并创建一个下拉列表。我使用一个输入框,但似乎无法使用一个选择框

工作的输入框

<input type="text" name="{{prop.name}}" ng-model="vm.filterValues[prop.name]">
    <div ng-repeat="uniqueValue in vm.schemaExtentionsUniqueValues">
         <div ng-if="uniqueValue[0] == prop.internalName || uniqueValue[0] == prop.name">
              {{uniqueValue[1]}}
         </div>
    </div>

{{uniqueValue[1]}
我试图构建的“选择框”中存在无法正常工作的错误:

 <select name="{{prop.name}}" ng-model="vm.filterValues[prop.name]">
    <span ng-repeat="uniqueValue in vm.schemaExtentionsUniqueValues">
          <span ng-if="uniqueValue[0] == prop.internalName || uniqueValue[0] == prop.name">
              <option value="{{uniqueValue[1]}}">{{uniqueValue[1]}}</option>
          </span>
    </span>
 </select>

{{uniqueValue[1]}
数据

任何帮助都将不胜感激。干杯


根据动态属性检查每个数组项中第一项的值。

我建议将大量逻辑移到控制器中。这使得模板“干净”,并将代码放在一个更容易访问的地方

这基本上意味着在SchemaExtensionUniqueValue到达要显示的模板之前对其进行过滤/排序

schemeExtentionsUniqueValues(propName) {
  // Filter this based on propName passed in;
}
第二个跨度可放入选项btw中:

<select name="{{prop.name}}" ng-model="vm.filterValues[prop.name]">
  <span ng-repeat="uniqueValue in vm.schemaExtentionsUniqueValues(prop.name)">
    <option ng-if="uniqueValue[0] == prop.internalName || uniqueValue[0] == prop.name"
      value="{{uniqueValue[1]}}">{{uniqueValue[1]}}</option>
  </span>
</select>

{{uniqueValue[1]}

如果您使用控制器确定SchemaExtensionsUniqueValues中的内容,那么您可能不需要选项标记上的ng If,并且可以像平常一样显示。

我建议将大量逻辑移到控制器中。这使得模板“干净”,并将代码放在一个更容易访问的地方

这基本上意味着在SchemaExtensionUniqueValue到达要显示的模板之前对其进行过滤/排序

schemeExtentionsUniqueValues(propName) {
  // Filter this based on propName passed in;
}
第二个跨度可放入选项btw中:

<select name="{{prop.name}}" ng-model="vm.filterValues[prop.name]">
  <span ng-repeat="uniqueValue in vm.schemaExtentionsUniqueValues(prop.name)">
    <option ng-if="uniqueValue[0] == prop.internalName || uniqueValue[0] == prop.name"
      value="{{uniqueValue[1]}}">{{uniqueValue[1]}}</option>
  </span>
</select>

{{uniqueValue[1]}

如果使用控制器确定SchemaExtensionUniqueValues中的内容,则可能不需要选项标记上的ng If,并且可以正常显示。

请在Fiddler或Plunkr中发布数据示例或创建演示。难道您不能简单地使用ng重复列表吗?是否可以根据不来自此数组的其他属性检查筛选值?您可以根据scope-
prop.internalName
中的任何内容
筛选:
,以及
prop.name
在您的情况下是肯定的@rrd建议尽早进行过滤,但在这种特殊情况下,我认为一个
过滤器:
足够干净。请在Fiddler或Plunkr中发布数据示例或创建演示,难道您不能简单地使用ng重复列表吗?是否可以根据不来自此数组的另一个属性检查过滤器值?您可以针对范围内的任何内容
过滤器:
prop.internalName
prop.name
在您的案例中是肯定的@rrd建议尽早进行过滤,但在这种特定情况下,我认为
过滤器:
足够干净。我通常会这样做,但[prop.internalName]的值仅在视图的for循环中设置。这与注入html有关,否则我将不得不使用$sce。我稍微修改了它以添加参数,并充实了模式。我通常会这样做,但[prop.internalName]的值仅在视图中的for循环中设置。这与注入html有关,否则我将不得不使用$sce。我稍微修改了它以添加参数,并充实了模式。。