如何在ng-repeat中设置ng-model的值?

时间:2013-02-21 17:42:11

标签: javascript angularjs

我有一个ng-repeat,我把它放在一个select标签里面。 我希望能够修改不同选择上的选定值。 这就是我所拥有的: html

<div ng-controller="Ctrl">
    <div ng-repeat="user in users">
        <select ng-model="nbModel" ng-options="numValue.Text for numValue in numValues" ng-change="chooseUser(nbModel, user.id)">
                        </select>
        &nbsp;&nbsp;{{user.name}}&nbsp;&nbsp;-&nbsp;{{user.age}} years
    </div>
</div>

js

function Ctrl($scope) {
    $scope.numValues = [ {Id : '0',Text : '0'}, {Id : '1',Text : '1'}, {Id : '2',Text : '2' }];    
    $scope.users = [];

    $scope.users.push(new User(1, 'Luke', 23));
    $scope.users.push(new User(2, 'Maria', 26));
    $scope.users.push(new User(3, 'Mike', 45));

    angular.forEach($scope.users, function(equip) {
        //TODO to set the default values for each select
    });

    $scope.chooseUser= function(value, name) {
        //some traitement        
        //TODO to set a wanted value        
    };
};

function User(id, name, age) {
    this.id=id;
    this.firstnamename = name;
    this.age = age;
}

我无法弄清楚如何手动设置所选选项。 有什么帮助吗?

1 个答案:

答案 0 :(得分:3)

你已经到了一半......你需要做的就是将ng-model设置为你想要改变的用户。假设您想使用select更改用户的年龄,它将如下所示:

<div ng-controller="Ctrl">
    <div ng-repeat="user in users">
        <select ng-model="user.age" ng-options="numValue.Text for numValue in numValues"></select>
        &nbsp;&nbsp;{{user.name}}&nbsp;&nbsp;-&nbsp;{{user.age}} years
    </div>
</div>