0

私は次のhtmlを持っています。

<div ng-controller="CustCtrl">
<table class="table table-condensed">
    <thead>
        etc.
    </thead>
    <tbody>
        <tr ng-repeat="customer in customers" data-cust-id="{{customer.Id}}">
            <td>
              <button ng-model="Id" tracking-{{customer.Tracking}} ng-click="startTrackingCustById(customer.Id)">
              </button>
            </td>
         etc.
        </tr>
    </tbody>
</table>

したがって、ボタンには、true または false の customer.Tracking 値にデータバインドされたクラスがあります。ボタンがクリックされると、startTrackingCustById() メソッドが正常に呼び出され、customers オブジェクト内の顧客オブジェクトが customer.Tracking = true のように正常に変更されます。

しかし、ボタン クラスは更新されません。私は何が欠けていますか?

4

2 に答える 2

1

CustCtrl で、このように顧客配列を更新する呼び出しをラップしました

$scope.$apply($scope.customers[i].Tracking = true);

回答の提案に基づいて、基本的に「ビューの更新に問題がある場合は、$scope.$apply を使用する必要がある可能性が高い」と述べていることがわかったときにリンクします。

これで動作します。今、私はその理由と方法を理解する必要があります。

于 2013-03-09T23:42:11.647 に答える
1

を使用して見てくださいng-class。スコープ内のブール値の場合、次を使用します。

ng-class="{'classNameToAddIfTrue':customer.Tracking}"
于 2013-03-09T23:33:31.353 に答える