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」からモデルを直接送信します。

オンセレクトから送信したばかりのモデルをコンソール ログに記録すると、常に 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.
        });
    }

理由はありますか?

4

0 に答える 0