Всем привет. Начал изучать angular и столкнулся с проблемой.
У меня в scope есть 2 обьекта:
1)
tasks:
12:
id: 12
user_id: 1
и т.д.
2)
users:
1:
id: 1
username: sergey
Пытаюсь вывести select:
<select class="form-control"
data-ng-model="tasks[task.id].user_id"
data-ng-change="setWorker(task.id)"
>
<option data-ng-repeat="user in users" data-ng-value="user.id" data-ng-selected="{[{user.id == task.user_id}]}">{[{user.username}]}</option>
</select>
Но возникает 2 проблемы:
1) В select по дефолту на данном примере не проставляется sergey
2) В select добавляется option вида:
<option value="? number:4 ?"></option>
Изначально грешил на то, что при загрузке данных от сервера в $scope.users и $scope.tasks помимо данных попадал promise, но я избавился от этого делая после получения данных:
$scope.users = data.toJSON();
Также есть еще 3 проблема:
После обновления данных о задаче и успешного выполнения ajax запроса на сервере, например смене user_id я изменяю данные в scope:
$scope.tasks[taksId].user_id = userId;
И хотелось бы чтобы при изменении $scope.tasks выполнялась моя функция $scope.test();
Добавил watcher на tasks:
$scope.$watch('tasks', function () {
$scope.test();
})
Но эффекта нет. Помогите пожалуйста решить эти проблемы. Может у кого есть какие варианты?