Рубрики
Без рубрики

Почему вы должны использовать «контроллер Angularjs» как «синтаксис»

Прочитайте это простое объяснение, почему и как использовать контроллер AngularJS в качестве «синтаксиса».

Автор оригинала: 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 Кодепен иллюстрировать это.

Счастливое кодирование 🎉.