angular不会从复杂对象中选择selectbox选项

时间:2015-02-07 18:54:20

标签: javascript angularjs

当Object来自服务器时,我无法选择选项。

    <select class="form-control"
            ng-hide="trip.checked1"
            ng-model="trip.location"
            ng-change="tripLocationChange(shift, trip)"
            ng-options="obj as obj.text for obj in locations" required>
   </select> 

我的传入对象是

"location":{"text":"Foo","value":"f6a62517"}

我用

填充selectBox
$scope.locations = [{"text":"Bar","value":"f07a2bc4"},{"text":"Foo","value":"f6a62517"}]

我认为问题出在这里 ng-options="obj as obj.text for obj in locations"

任何想法都将受到赞赏

1 个答案:

答案 0 :(得分:1)

问题在于,即使来自服务器的对象({1}}看起来类似于$scope.trip.location数组中的对象,它们也是不同的对象。同时,Angular检查对象的完整性,以便将selectbox选项设置为选中,并且只有当相同对象时,两个对象才相等。这不是你的情况。

在您的情况下,您将不得不循环$scope.locations数组,找到正确的对象并将$scope.locations设置为找到的值。这应该适合你:

$scope.trip