首页 文章

使用ng-change从ng-repeat中获取ng-model值

提问于
浏览
2

伙计我是角色的新手,并且在从ng-repeat内部获得ng-model的 Value 时遇到了问题 .

我有一系列用户,我想指定具有不同访问级别的用户

users = [
{id:1, level:0},
{id:2, level:0},
{id:3, level:0}
]

这是HTML

<div ng-repeat="user in users track by $index">
{{user.id}}-
<select name="appoint" ng-change="appoint(user.id)" ng-model="appointLevel">
   <option value=0>Revoke</option>
   <option value=1>Moderator</option>
   <option value=2>Admin</option>
 </select>
</div>

角度为 appoint() 的函数:

$scope.appoint = function(id){
    console.log(id+' '+appointLevel)
  }

该函数工作正常,我得到了 id 的值,但没有触发该函数的输入元素的`appointmentLevel' .

如何在“ng-change”上有效地获得 console.log(id+' '+appointLevel) 的值?提前致谢 .

1 回答

  • 6

    使用

    <select name="appoint" ng-change="appoint(user.id, appointLevel)" ng-model="appointLevel">
    

    $scope.appoint = function(id, appointLevel) {
        console.log(id + ' ' + appointLevel);
    }
    

    您不能直接从JS函数访问appointmentLevel,因为它在ng-repeat的范围内,这是控制器范围的子范围(即$ scope) .

    Working plunker

    或者您可以将appointmentLevel存储在用户自己中:

    <select name="appoint" ng-change="appoint(user)" ng-model="user.appointLevel">
    

    $scope.appoint = function(user) {
        console.log(user.id + ' ' + user.appointLevel);
    }
    

相关问题