カスタム コントローラーが "new" キーワードでインスタンス化されるか、単に $scope オブジェクトに適用されるかについて、矛盾する情報を見てきました。
ドキュメントサイトによると、
Angular は (JavaScript の Function#apply の意味で) コントローラー コンストラクター関数を新しい Angular スコープ オブジェクトに適用し、初期スコープ状態を設定します。これは、Angular がコントローラ タイプのインスタンスを作成しないことを意味します (コントローラ コンストラクタで new オペレータを呼び出すことにより)。コンストラクターは、常に既存のスコープ オブジェクトに適用されます。
しかし、Angular 1.2 のように見え"as"
ますが、次のようにコントローラーの名前を別の名前に変更するコンストラクトがあります。
<body ng-controller="DemoController as demo">
<tr ng-repeat="student in demo.students">
<td>{{student.name}}</td>
</tr>
</body>
function DemoController() {
this.students = [...]
}
new
したがって、これは、コントローラーがキーワードを使用してインスタンス化されているように見えます。
どちらですか?誰かがこれを明確にできますか?