将ng-options与响应对象一起使用

时间:2015-03-29 18:22:56

标签: javascript angularjs

我已经通过了很多关于如何使用ng-options的答案,但还没有找到解决方案或正确的方法。

我的代码很简单。我想迭代我收到的响应对象并填充我的"选择"标签'选项'名称属性。

index.js

app.controller("promo", function($scope, $http) {

$scope.behaviors = {};

$scope.init = function() {
    return $http.get('/behaviors').then(function(response) {
         $scope.behaviors = response.data;
         console.log(typeof($scope.behaviors))
    })
}

我的回答看起来像这样

Object {bangalore.yml: Object, ean.yml: Object, chennai.yml: Object}

我认为我可以用ng-repeat这样做

<select ng-model="behavior" ng-repeat="behavior in behaviors">
<option>{{behavior.name}}</option>

我是初学者,我需要知道该做什么以及ng-options如何运作。

3 个答案:

答案 0 :(得分:2)

使用: -

 <select ng-model="behavior" ng-options=" value.name for (key, value) in behaviors">

      </select>

Plunker

答案 1 :(得分:1)

如你所说,使用ng-options:

<select ng-model="behavior" ng-options="value as key for (key, value) in behaviors">

这会将所选值绑定到behaviour,显示选项将是对象的键。 另请注意,您不需要option元素。

答案 2 :(得分:0)

你应该使用

如果要显示名称并绑定整个对象,请使用下面的

<select ng-model="behavior" ng-options="behavior.name for behavior in behaviors"></select>

如果要显示该对象的名称和绑定ID,请使用下面的

<select ng-model="behavior" ng-options="behavior.is as behavior.name for behavior in behaviors">
</select>