我使用Angular从$http
调用返回了一个非常深层嵌套的JSON对象。在我的模板中,我必须嵌套一些ng-repeats
来获取数据。我似乎无法弄清楚如何使用ng-model
在文本输入上绑定数据。
我读了this question,它说返回对象不是$scope
中的自动数据,你必须遍历数据并实例化结构。我尝试了同样的结果。
// Seemingly unnecessary code
angular.forEach(Object.keys($scope.sources), function(sourcename){
$scope.sourceData[sourcename] = {};
angular.forEach(Object.keys($scope.sources[sourcename]), function(key){
$scope.sourceData[sourcename][key] = $scope.sources[sourcename][key];
});
这是表达我尝试的小提琴:
我只想在字段中填充值并绑定到模型。提前感谢任何建议。
答案 0 :(得分:3)
您的示例中的HTML只是稍微偏离。
"不工作" input
只有ng-model
中的一些代码无效。
首先,您不需要在Angular指令属性中插入{{ }}
。所以,这包括ng-model
。所以{{key}}
不是必需的。
此外,sourceData
拼写错误。它应该是sourcedata
并且案件很重要。
因此ng-model
的最终结果是ng-model="sourcedata[key]"
:
<li ng-repeat="(key,value) in sourcedata">
WORKS: <input type="text" value="{{value}}" /><br/>
DOESN'T: <input type="text" ng-model="sourcedata[key]" />
</li>