Автор оригинала: Christopher Northfield.
Что этот контроллер как «синтаксис?
Angularjs стал популярным интерфейсным каркасом, поэтому вы, наверное, слышали термин «контроллер», который немного бросил. Этот синтаксис – это способ для нас доступа к свойствам и методам контроллера, объявленного на контроллере Via это
Отказ Поддержка этого была введена в Angularjs версии 1.1.5.
Почему вы должны использовать это?
Вот несколько очень хороших причин:
- При использовании вложенных принципов он становится полностью понятен, где принадлежит метод или ссылка на свойство.
- Не используя
$ родитель
Чтобы получить доступ к свойствам родительского контроллера, если все будет перемещено, мы все равно можем быть уверены, что мы ссылаемся на правильный контроллер. - Поскольку мы используем точечную обозначение, становится невозможным двусторонним связыванием для примитива.
Пример не используя “контроллер как” синтаксис “
По не использует «Контроллер как« синтаксис », мы видим, что все усложняется довольно быстро (представьте, что это в очень большом приложении):
{{title}}
{{title}}
{{person.name}}
Пример использования контроллера как «синтаксис»
Чтобы использовать наш «контроллер как« синтаксис », во-первых, мы объявляем все наши свойства и методы на это
Собственность нашего контроллера:
// site.controller.js: (function() { 'use strict'; angular.module('app').controller('SiteController', SiteController); // no need to inject $scope because we don't need it SiteController.$inject = []; function SiteController() { // assigning this to a loacal variable makes it easier to // declare properties and methods in the controller var vm = this; // declare our title on this vm.title = "Welcome!"; } })(); // other.controller.js: (function() { 'use strict'; angular.module('app').controller('OtherController', OtherController); function OtherController() { var vm = this; vm.title = "Other title!"; } })();
Когда все становится намного более видимым с видом. Мы видим, откуда приходит каждый бит данных:
{{SiteCtrl.title}}
{{OtherCtrl.title}}
Вот a Кодепен иллюстрировать это.
Счастливое кодирование 🎉.