$ ctrlは、コントローラのビューモデルオブジェクトです。この$のCTRLはあなたのコードをチェックする場合は、$ctrl = this;
としてコントローラ機能のように、基本的にそのthis
キーワードを定義を参照することができ、選択した名前(VM別の最も一般的な名前である)です。
$ctrl.latestMeasurement = 'someValue'
を使用している場合は、コントローラの機能にlatestMeasurement
というプロパティを追加しているようです。
これはHTMLでどのように使用するのですか?あなたのコードは<h1>{{$ctrl.latestMeasurement}}</h1>
を持っている必要がありますHTMLでlatestMeasurementプロパティにアクセスするには
(H1タグは単なる一例である。)
ここの$ CTRLは、私は、コントローラ部に前述したものとは異なっています。ここで、$ ctrlはコントローラのプロパティであるcontrollerAs
の値です。ただし$ctrl
はcontrollerAs
プロパティのデフォルト値です。したがって、コードにはcontrollerAsプロパティが定義されていない可能性があります。したがって、AngularはHTMLでデフォルト値$ctrl
を使用します。
これは、ほとんどの人が混乱するところです。だから、
はあなたが変数vm
にごthis
キーワードを宣言している、とあなたがmyCtrl
にごcontrollerAs
プロパティを設定して新しいコントローラ、すなわちで想定、私が説明しましょう。
controllerAs: 'myCtrl'
コントローラのプロパティを定義します。
var vm = this;
あなたのコントローラの機能には、
この場合、jsで値を設定するにはvm
を使用し、HTMLではmyCtrl
を使用する必要があります。例えば、HTML <span ng-bind="myCtrl.test"></span>
でJSコントローラ機能で
vm.test = 'Hello world';
結果こんにちはは、あなたのページに表示されます。
なぜ$ ctrlで、$ scopeではないのですか?
ビューモデルオブジェクトモデルの概念は、AngularJS 1.5で導入されました。実際には、$ scopeはもはや存在しないAngular 2に移行しています。だから1.5で彼らは新しいapprochを導入しましたが、$スコープを完全に削除しませんでした。
回答が役に立ちました。あなたはhttps://johnpapa.net/angularjss-controller-as-and-the-vm-variable/
それはとても簡単かもしれません。詳細な説明をありがとうございます。 –