选择AngularJs的问题

时间:2016-03-27 20:52:21

标签: angularjs

我有一些问题。

我的范围内有两个对象: 1)

tasks:
    12:
        id: 12
        user_id: 1

2)

users:
    1:
        id: 1
        username:  sergey

我正在尝试使用默认值渲染select(在此示例中,它必须是sergey):

<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)在我的选择默认值为空选项 2)在我的选择中,还有一个额外的选项o_O,如:

<option value="? number:4 ?"></option>

首先我认为发生了这种情况,因为服务器响应包含了承诺。我用toJSON解析了所有数据,例如:

$scope.users = data.toJSON();

我还有第三个问题: 在将我的数据和成功查询更新到我的服务器后,例如尝试更改任务中的user_id,我想更新我的范围,我这样做:

$scope.tasks[taksId].user_id = userId;

之后我想执行我自己的函数test(),我试图通过观察者这样做:

$scope.$watch('tasks', function () {
    $scope.test();
 })

但什么都没发生。你知道吗? = \

1 个答案:

答案 0 :(得分:0)

而不是Obsolete尝试使用ng-repeat这样:

ng-options

使用<select class="form-control" data-ng-model="tasks[task.id].user_id" data-ng-change="setWorker(task.id)" data-ng-options="user.id as user.username for user in users"> </select> 可以使用非字符串值类型。基本上,这表示“对于users集合中的每个用户,使用user.username中的文本和user.id中的值创建一个选项”。