使用ng-options值检查值

时间:2016-06-02 15:01:31

标签: javascript angularjs

我使用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这里

4 个答案:

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

Working Plunker

答案 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");
    }
}