预选值并在选择框中传递选定的值

时间:2014-02-19 02:27:58

标签: javascript angularjs ng-options

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

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

ng-change

2 个答案:

答案 0 :(得分:0)

您的task是已在范围内的属性,因此您无需将其传递给assignUser方法。

ng-change="assignUser()"

控制器:

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

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

}

答案 1 :(得分:0)

我终于让它正常工作了。要预先选择该选项,需要将模型设置为当前任务用户标识的属性,在本例中称为task.assigneeId。这将映射到选项值。然后,要设置新值,所需的只是将任务传递给更新函数并调用update。由于现在已经通过模型设置了用户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();
  }