1

コントローラーがAngularでどのように機能するかのサンプルをいくつか見ており、それらを宣言する2つの方法があります。1つはコントローラー名のみで、もう1つは「as somename」です。ng-controller = "myController" を使用する例では、コントローラーを定義するときに依存関係として $scope を取ります。次に、モデルが $scope に設定されます。次のようになります。

 $scope.mymodel = somevalue;

ng-controller = "MyControler as vm" などの "as" 構文を使用する例では、モデルのセットアップ時に $scope を使用することはありませんが、それを "this" に割り当て、{{vm.something}} を使用してバインドします。

コントローラーで:

var vm =this;

vm.something = somevalue;

2番目の例ではどのように機能していますか? それは最新バージョンの新しい方法ですか?

4

1 に答える 1

0

「as」構文を使用すると、コントローラー全体がビューに公開されます。私の意見では、それは悪い習慣です。どちらがパフォーマンス的に優れているかはわかりませんが、javascript で「this」を使用することには、すでに多くの問題があり、「this」に別の意味を追加することはお勧めしません。したがって、私は $scope に固執します (ドキュメントでも使用されているため)。'as' 構文がどのように機能するかについて詳しく知りたい場合は、このトピックを参照してください: 'this' と AngularJS コントローラーの $scope

于 2013-11-14T21:50:57.280 に答える