1

有人可以解释为什么会发生以下情况吗?

我使用 ui-select 并具有以下 html:

<div class="col-sm-4"><p>{{cinema.name}}</p></div>

<div class="col-sm-8">
    <ui-select ng-model="program[cinema.id]" multiple theme="bootstrap" on-select="onSelect(program[cinema.id], cinema.id)" ng-disabled="disabled">
        <ui-select-match placeholder="Select...">{{$item.name}} - {{$item.code}}</ui-select-match>
        <ui-select-choices repeat="film in filmList | filter: { name: $select.search }">
            {{film.name}}
        </ui-select-choices>
    </ui-select>
</div><!-- /col-sm-8 -->

问题是关于“on-select”指令。

在我的控制器中,我声明了将保存模型数据的“程序”对象。

$scope.program = {};

当调用“onSelect”方法时,我直接从“ui-select”指令和“cinemaId”发送模型。

如果我控制台记录我刚刚从 on-select 发送的模型,它将始终显示一个短值。

如果我使用cinemaId,在详细超时内从$scope 访问“程序”模型,我会使用所有值更新模型。

$scope.onSelect = function (theModel, cinemaId) {
       console.log(theModel) // this will show the values inside the model, ALWAYS one value behind.

        $timeout(function(){
            console.log($scope.program[cinemaId]);
            // if I do this and I access the model bound to the select from the scope, I get the model with the values updated.
        });
    }

任何想法为什么?

4

0 回答 0