誰かが次のことが起こる理由を説明できますか?
私は 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」からモデルを直接送信します。
オンセレクトから送信したばかりのモデルをコンソール ログに記録すると、常に 1 つの値が短く表示されます。
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.
});
}
理由はありますか?