初期化時にWebページから変数を渡す正しい方法は何$scope
ですか?
私は現在、2つの可能性を知っています:
ng-init
、これはひどく、お勧めできません (?)- リソースにAJAXリクエストを使用します。これには、サーバーへの追加のリクエストが必要ですが、これは望ましくありません。
他に方法はありますか?
初期化時にWebページから変数を渡す正しい方法は何$scope
ですか?
私は現在、2つの可能性を知っています:
ng-init
、これはひどく、お勧めできません (?)他に方法はありますか?
これらの変数が を介して注入できる場合ng-init
は、それらを Javascript で宣言していると想定しています。
したがって、constant
これらの変数を共有するサービス ( ) を作成する必要があります。
var variablesFromWebPage = ...;
app.constant('initValues', variablesFromWebPage);
このサービスを使用すると、アプリの開始時にそれらをスコープに追加する必要はなく、インジェクトするだけで、任意のコントローラーから使用できます ( function MyCtrl(initValues) {}
)。
ただし、スコープ内に含める必要がある場合、これはdocsに従って、コントローラーが意図されている主な理由の1つです。
コントローラを使用して次のことを行います。
- スコープ オブジェクトの初期状態を設定します。
- スコープ オブジェクトに動作を追加します。
このコントローラをルート ノードに追加するだけです。
app.controller('InitCtrl', function($rootScope, initValues) {
$rootScope.variable1 = initValue.someVariable;
$rootScope.variable2 = initValue.anotherVariable;
});