我使用ng-options创建了常规选择框。我在对象
中有value
属性和members
数组
$scope.currentprop = {
name : "graphFillDirection",
members : [{
name : "ttb",
caption : "Top to Bottom",
}, {
name : "btt",
caption : "Bottom to Top"
}, {
name : "ltr",
caption : "Left to Right"
},{
name : "rtl",
caption : "Right to Left"
}],
value : "ttb"
}
所以我用members.name
创建了下拉值。这是我的html
<select ng-model="currentprop.value" ng-options="value.name for (key , value) in currentprop.members"></select>
问题
我遍历成员数组,然后用name
属性检查value
。因此,如果members.name
等于value
,那么我应该将检查的索引值传递给ng-model。
在普通的javascript中我们曾经喜欢这个currentprop.members.name.indexOf(currentprop.value)
。所以这就是我需要分配给ng-model的东西。
目前我在currentprop.value
中使用ng-model
。在这个地方我应该使用检查值的索引值
我不知道如何实现它。请帮我。提前致谢。 Plnkr这里
答案 0 :(得分:1)
尝试ng-selected
<select ng-model="currentprop.value"
ng-options="value.name as value.name for (key,value) in currentprop.members"
ng-selected="{{currentprop.value == value.name}}">
</select>
答案 1 :(得分:0)
如果我正确理解您的问题,问题在于ng-options。我认为你在寻找的是:
ng-options="member.name as member.caption for member in currentprop.members"
答案 2 :(得分:0)
<select ng-model="value" ng-options="value.name as value.name for (key,value) in currentprop.members" ng-change=chk(value)></select>
比较何时选择值
$scope.chk=function(data)
{
console.log(data== $scope.currentprop.value)
}
答案 3 :(得分:0)
试试这个:
http://plnkr.co/edit/R9zFHhXxTFqHGPgN0n4K
我做了一些小改动并添加了一个ng-change元素,用于检查所选值是否等于你定义的值。
<select ng-model="currentprop.selected" ng-change="onDropdownChange()" ng-options="value.name as value.name for (key , value) in currentprop.members">
<option value="">Choose one...</option>
</select>
$scope.onDropdownChange = function(){
if ($scope.currentprop.selected === $scope.currentprop.value){
alert("Selected === value");
}
}