AngularJS:如何在嵌套的ng-repeats中绑定数据?

时间:2014-03-15 22:47:33

标签: javascript angularjs loops model nested

我使用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];
        });

这是表达我尝试的小提琴:

http://jsfiddle.net/c7z9C/2/

我只想在字段中填充值并绑定到模型。提前感谢任何建议。

1 个答案:

答案 0 :(得分:3)

您的示例中的HTML只是稍微偏离。

这是working fiddle

"不工作" 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>