这是我的HTML代码
<select ng-model="node.field.name"
data-nodrag
ng-options="value.label as value.label group by value.name for value in myOptions"
ng-change="getConditionsByType(node.field.name,value.name)">
</select>
何时使用getConditionsByType(node.field.name,value.name)
我将value.name视为未定义
如何在更改选项时访问ng-repeat中的值!
答案 0 :(得分:3)
value
未在ng-change
的范围内定义 - 它仅在ng-options
的微观语法表达式中定义。
相反,让模型成为&#34;值&#34; - 即myObjects
。
<select ng-model="selectedOption"
ng-options="value as value.label group by value.name for value in myOptions"
ng-change="onChange()">
</select>
这意味着您无法将node.field.name
设置为&#34; value.name&#34;直接 - 在ngChange
代替:
$scope.onChange = function(){
$scope.node.field.name = selectedOption.name;
getConditionsByType($scope.node.field.name, selectedOption.name)
}
答案 1 :(得分:2)
我想你想要这个..
<select ng-model="node.field"
data-nodrag
ng-options="value as value.label group by value.name for value in myOptions"
ng-change="getConditionsByType(node.field.name, node.field.label)">
</select>
这不是仅设置name
的{{1}}属性,而是设置整个node.field
。然后,您可以参考node.field
和node.field.name
。
如果我误解了node.field.label
和value
没有相同的属性,那么在范围上使用中间字段来保存值,观察它并将其转换为您需要放入的值node.field
(或在node.field
内进行转换。)
答案 2 :(得分:2)
选中此项:http://plnkr.co/edit/RRWSYmEfCZu8aOrtNctl?p=preview
主要变化
<select style="width: 100px;" ng-model="node.field.name" ng-change=temp()
ng-options="value.name as value.label group by value.name for value in myOptions"></select>