有人可以解释为什么会发生以下情况吗?
我使用 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.
});
}
任何想法为什么?