0

我有一个包含用户列表的下拉列表。该列表用于将用户分配给任务。task.assignedId我可以通过设置映射到用户的模型来预选分配的用户,如果我将模型设置为user并将其传递ng-change给选择,我可以分配一个新用户。我遇到的问题是做这两件事。我怎样才能有一个预选的值,然后将选择的新值传递给我的更新方法?

这是我拥有的当前代码,它正确设置了当前用户,但没有传递新选择的用户:

<select ng-model="task.asigneeId" ng-change="assignUser(task)" 
       ng-options="user.id as user.firstName for user in users">
4

2 回答 2

0

task是一个已经在范围内的属性,所以你不需要将它传递给assignUser方法。

ng-change="assignUser()"

控制器:

$scope.task = {
    asigneeId: 1,
    ....
};

$scope.assignUser = function() {
    // use $scope.task do something    

}
于 2014-02-19T03:32:50.533 回答
0

我终于让它正常工作了。要预选该选项,需要将模型设置为当前任务用户 ID 的属性,在本例中称为 task.assigneeId。这将映射到选项值。然后设置新值,只需将任务传递给更新函数并调用更新。因为现在已经通过模型设置了用户 ID,所以它会正确更新。这是代码:

HTML:

  ul class="task-list"
    li [ng-repeat='task in uncompletedTasks]
      p Assign-to:
        select ng-model="task.asigneeId" ng-change="assignUser(task)" ng-options="user.id as user.firstName for user in users"
        option value="" -- assign a user --

角度控制器:

  $scope.assignUser = function(task) {
    task.update();
  }
于 2014-02-19T06:03:31.583 回答