使用JSON预填充选择选项

时间:2014-09-16 16:29:56

标签: ajax json angularjs select

我正在尝试使用JSON预先填充使用angularJS制作的表单以及之前插入的数据 除了未填充的选项项目外,一切正常。

我正在使用的JSON示例是:

{
"date": "2014-09-14",
"enumerator": "a",
  "monthreport": {
    "value": "March"
  },
  "weekreport": {
    "value": "2nd week"
  },
  "Maize": 23,
  "Wheat": 41,
  "Sorghum": 71,
  "q14": "Yes"
}

monthreport weekreport 是select选项,并且在加载表单时不会填写它们。 q14是一个单选按钮,它可以像所有其他输入文本字段一样工作,包括文本和数字。 当我在表单中填写数据然后保存它时,JSON是由angularJS完全生成的。

select元素在HTML中以这种方式指定:

<select ng-model="currForm.weekreport" ng-options="o.value for o in options16" name="r_weekreport" required ></select>

并在控制器中设置选项:

...
$scope.options16= [{value:"1st week"},{value:"2nd week"},{value:"3rd week"},{value:"4th week"},{value:"5th week"}];
...

要加载JSON,我使用app.controller中的常用函数:

...
 $http({
  method: 'GET',
  url: 'http://samplesite.com/formJSON.txt'
}).success(function(data, status) {
   console.log('works!!!   ' + data);
   $scope.currForm = data;  }).error(function(data, status) {
  // Some error occurred
   console.log(status);
})
...

似乎一切都正确......我错了?

1 个答案:

答案 0 :(得分:2)

您可以尝试:

<select ng-model="currForm.weekreport.value" ng-options="o.value as o.value for o in options16" name="r_weekreport" required ></select>

这是因为角度比较了示例中的对象并且它们不相等。你需要比较基元。