为什么我的ng-options没有生成纠正?

时间:2014-08-12 15:31:04

标签: html angularjs

我在服务器中生成了json数据。生成的数据是:

[
   {"identifier":1,"data":{"name":"One"}},
   {"identifier":2,"data":{"name":"Two"}}
]

我想创建以下选择:

<select  ng-model="mydata.identifier">
<option value="">Please choose option</option>
<option value="**0**">One</option>
<option value="**1**">Two</option>
</select>

这是我的代码:

Angularjs控制器:

$scope.initMyData =  function(){
    $http.get('getData')
    .success(function (data) {
                $scope.alldata= data;

    }); 
};

我的HTML

 <select ng-model="mydata.identifier" ng-options="data.data.name for data in alldata">
          <option value="">Please choose option</option>
    </select>

为什么我选择的价值不正确?我的代码什么不好? 感谢

4 个答案:

答案 0 :(得分:2)

试试这个

<select ng-model="mydata.identifier" ng-options="data.data.name for data in alldata.data">
      <option value="">Please choose option</option>
</select>

数组应该是这样的

[  
   {"identifier":1,"data":{"name":"One"}},
   {"identifier":2,"data":{"name":"Two"}}
];

DEMO

答案 1 :(得分:2)

你缺少一个大括号。

[
  {"identifier":1,"data":{"name":"One"},
  {"identifier":2,"data":{"name":"Two"}
]

应该是

[
  {"identifier":1,"data":{"name":"One"}},
  {"identifier":2,"data":{"name":"Two"}}
]

答案 2 :(得分:1)

您的代码中有2个问题:

  1. 您在数据中的数据对象末尾错过了1个右括号}
  2. 您需要根据 object.data 格式编写ng-options。例如。 value.data
  3. <select ng-model="mydata.identifier" ng-options="value.data.name for value in allData"> <option value="">Please choose option</option> </select>

    我创建了一个示例小提琴here

答案 3 :(得分:0)

您可以使用as注释告诉角度要绑定到ng-model的值

<select ng-model="mydata.identifier" 
      ng-options="data.identifier as data.data.name for data in alldata">
   <option value="">Please choose option</option>
</select>

Angular API reference