私のAngular.jsデータモデルで "data.id"の値を初期化する私のHTMLに "ng-init"という指示があります。今のところ、私はこれがどう動くかを変えることはできないと言いましょう。ng-initの値が設定されるのを待つ正しい方法は何ですか?
ここでは、ページが読み込まれるとすぐにHTTPリクエストを行います。このURLはこのdata.id値に依存します。これまでのところ、次のように動作しているようです:
app.controller('MainCtrl', function ($scope, $http, $timeout) {
"use strict";
$scope.data = {};
$timeout(function() {
$http.get("/api/Something?id=" + $scope.data.id);
}, 0);
});
しかし、ゼロのタイムアウトでタイマーを使用すると不格好なようです。 ($ timeoutコードを省略して$ http.getを直接呼び出すと、$ scope.data.idはもちろん未定義です)。
$ httpリクエストを発行する前にng-initが実行されるまで待つのが良い方法はありますか?上記のタイムアウトベースのコードは、すべての場合/すべてのブラウザなどで動作することが保証されていますか?
を使用しようとすることができます。それははるかに "角の"アプローチですimho – Anton