0

ajax でデータを取得したら、それをビューに表示し、ng-repeat で取得した DOM 要素でアイソトープを使用する必要があります。したがって、$scope.$apply(); を呼び出す必要があります。次に、「ダイジェストはすでに進行中です」というエラーが表示されます。

「safe-apply」を使ってみたのですが、スコープのフェーズは常にダイジェストなので、apply は発火しません。必要なのは、ng-repeat の一種のコールバックだけです。

今、私はこのようなものを持っています:

 $http({
    method: 'GET',
    url: '/web/main/json'
}).success(function (data, status, headers, config) {
        $scope.cards = data.cards;

        /* without this apply my DOM elements would be 
        invisible (if i use isotope on them)*/
        $scope.$apply(); 
        mainFunction(); // here i use isotope on my DOM elements
    }).error(function (data, status, headers, config) {
        alert("fail " + data);
    });
4

2 に答える 2

1

アプローチを変えるべきだと思います。ディレクティブについて読み、それが使用されているタグの子にアイソトープを適用するディレクティブapply-isotopeを書き、次のようなものを作成します。

<tag1 apply-isotope>
  </tag2 ng-repeat="card in cards">
    ...
  </tag2>
</tag1>
于 2013-07-23T09:30:06.320 に答える