0

ユーザーのリストを含むドロップダウンがあります。リストは、ユーザーをタスクに割り当てるために使用されます。ユーザーにマップされているモデルを設定することで、割り当てられているユーザーを事前に選択できます。また、モデルを設定してそれを選択時に渡すとtask.assignedId、新しいユーザーを割り当てることができます。私が抱えている問題は、これらの両方を行うことです。事前に選択された値を取得し、選択された新しい値を更新メソッドに渡すにはどうすればよいですか?userng-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

yourtaskは既にスコープ内にあるプロパティであるため、メソッドに渡す必要はありません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) のプロパティに設定する必要があります。それは options 値にマップされます。次に、新しい値を設定するには、タスクを update 関数に渡して 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();
  }
于 2014-02-19T06:03:31.583 に答える