AngularJS - ng-repeat - 如何使用id创建数组

时间:2014-07-16 15:32:44

标签: angularjs angularjs-ng-repeat ng-repeat

我正在使用ng-repeat创建一个项目数组(列表),我希望每个项目都有一个id作为它在数组中的位置。

JS FIDDLE DEMO HERE:http://jsfiddle.net/m62Ez/15/

请查看以下内容,看起来ng-model="item.id"永远不会分配。任何建议非常感谢。

HTML

 <div ng-controller="MainCtrl">
    <button ng-click="addItem()">Add Item</button>

    <ul>
        <li ng-repeat="item in items">
            <input type="hidden" ng-model="item.id" ng-value="{{$index}}" />
            <input type="text" ng-model="item.name" />
        </li>
    </ul>
    <hr />
    <button ng-click="saveAll()">Save All</button>
</div>

JS

var app = angular.module("app", []);
app.controller("MainCtrl", function ($scope) {

    $scope.items = [];
    $scope.addItem = function () {
        $scope.items.push({});
    }
    $scope.saveAll = function () {
        console.log($scope.items); // item's do not have id's
    }

});

1 个答案:

答案 0 :(得分:2)

隐藏字段无效。如果您希望对象具有ID,则使用ID生成它们:

$scope.addItem = function () {
    $scope.items.push({id: $scope.items.length});
}

更新了jsfiddle:http://jsfiddle.net/K7DgE/