2016-05-02 2 views
0

は、ビデオではなどのコントローラ、ディレクティブ、スコープ、モデルについてほとんど知っている、家庭教師は、このようにコントローラを書いた:

var module = angular.module('name', [dependencies]) 
        .controller($scope)... 

私はあなたが欲しいだけの事上記のスニペットから選択するには、彼(教師)は$ scopeオブジェクトをコントローラの関数に渡しています。それはうまく、それは働いた。

は公式角度ウェブサイト上の例では、私はこのコードを見つけました:

angular.module('invoice1', []) 
.controller('InvoiceController', function() { 
    this.qty = 1; 
    this.cost = 2; 
    this.inCurr = 'EUR'; 
    this.currencies = ['USD', 'EUR', 'CNY']; 
    this.usdToForeignRates = { 
    USD: 1, 
    EUR: 0.74, 
    CNY: 6.09 
    }; 

私はこの例では、何の$scopeが渡されていないので、thisが代わりに使用されていることをはっきりと見ることができます。これは、コントローラー関数に渡された$scopeとコントローラー関数内の 'this'が同じオブジェクトであることを意味しますか?

+0

https://docs.angularjs.org/guide/componentも忘れずにコンポーネントをご覧ください。コンポーネントと "Controller as"シンタックスの組み合わせは、今日では非常に普及しています。 –

答えて

2

ここにはさまざまなものがあります。

最初のスニペットでは、 "invoice1"という名前のモジュールを作成しています。このモジュールは、第3のパーツライブラリまたは他のモジュールを挿入しないので、空の[]です。

その後、コントローラを作成しています。このコントローラはAngularライブラリから$ scopeを注入しています。

2番目のスニペットでは、チューターはcontrollerAs syntaxを使用しています。したがって、$scopeは不要ですが、オブジェクトをコントローラに直接バインドすることができます。ビューの内部では、コントローラーの名前を使用してバインディングを参照できます。

<div ng-controller="InvoiceController as invoice"> 
    {{ invoice.qty }} 
</div> 
関連する問題