我正在尝试使用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);
})
...
似乎一切都正确......我错了?
答案 0 :(得分:2)
您可以尝试:
<select ng-model="currForm.weekreport.value" ng-options="o.value as o.value for o in options16" name="r_weekreport" required ></select>
这是因为角度比较了示例中的对象并且它们不相等。你需要比较基元。