1

初期化時にWebページから変数を渡す正しい方法は何$scopeですか?

私は現在、2つの可能性を知っています:

  1. ng-init、これはひどく、お勧めできません (?)
  2. リソースにAJAXリクエストを使用します。これには、サーバーへの追加のリクエストが必要ですが、これは望ましくありません。

他に方法はありますか?

4

2 に答える 2

2

これらの変数が を介して注入できる場合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;
});
于 2013-04-22T12:47:39.500 に答える