Angular 1: Controller As vs $scope

controller as появился далеко не сразу.
Зачем он нужен?
$scope наследуется, и как только в дочернем шаблоне произойдёт изменение отнаследованной модели, она перестанет синхронизироваться с родительской. Обойти это можно было, создавая модели-свойства объектов. Но это не очень очевидно и не так изящно.
Поэтому была введена конструкция вида <div ng-controller="ParentController as parent">.
Тогда в шаблонах модели можно использовать так: <input ng-model="parent.var1" />.
Это приводит к облегчению чтения шаблонов и помогает избежать проблем с неявным наследованием.
Более подробно с примерами можно почитать здесь.

LEAVE A COMMENT