2

私のAngularコードでは、テンプレートを埋めるデータをajaxにロードしていますが、これまでのところうまくいっています...次に、データがロードされたら、javascript関数を呼び出したいと思います。

テンプレートがレンダリングされたら、コールバックを行う方法が見つかりませんでした。いくつかのイベントを試しましたが、どれも機能していません。

私の解決策は、タイムアウト後に JavaScript メソッドを呼び出すことです。

$http.post('url').success(function (data) {
    $timeout(function () {/* process data */    }, 200);
});

うまくいくようですが、それはタイムアウトです。タイムアウトの終わりにすべてがレンダリングされることを保証するものは何もありません。私のPCが速いからといって、それが機能しているのかもしれません...

イベントベースのソリューションはありますか? または、これよりも優れたソリューション...

私のソリューションの jsfiddle : http://jsfiddle.net/ZCT4K/5/

4

1 に答える 1

1

あなたのデータが必要です$watch()。したがって、次のことを試すことができます。

$http.post('url')
    .success(function (data) {
         $scope.postData = data;
    });

//Watch the value of postData
$scope.$watch('postData', function () {
    if ($scope.postData === undefined || $scope.postData === null || $scope.postData === "") {
        return;
    }

    /*Else process your data*/
});
于 2013-06-05T02:48:58.870 に答える