2014-02-19 3 views
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"> 
+0

А вы смотрели на нг выбранный HTTP: //docs.angularjs.org/api/ng/directive/ngSelected –

+0

Я пытаюсь выбрать ng, но мне не повезло. Я думаю, что мои значения отключены, поэтому он не выбирает нужного пользователя или что-то в этом роде. Мои значения для параметров должны быть равны идентификатору пользователя, но это не похоже на то, что они есть. – sturoid

+1

, если вы поместите свой код в jsfiddle или plnkr, это будет полезно. –

ответ

0

вашего task является собственностью уже в рамках, так что вам не нужно проходить это до assignUser метод.

ng-change="assignUser()" 

Контроллер:

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

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

} 
+0

Я думаю, вам нужно передать это, потому что эта область будет перезаписана для каждой итерации цикла. Поэтому задача должна быть передана, чтобы обратиться к правильной задаче этой области. – sturoid

0

я, наконец, получил это работает правильно. Чтобы предварительно выбрать параметр, модель должна быть настроена на свойство идентификатора пользователя текущих задач, которое в этом случае называется task.assigneeId. Это будет отображаться на значение параметров. Затем, чтобы установить новое значение, все, что вам нужно, это передать задачу в функцию обновления и вызвать обновление. Поскольку идентификатор пользователя уже установлен через модель, он будет корректно обновляться. Вот код:

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(); 
    }