Использование $ watch без $ scope (контроллер как синтаксис)

В Angular 1.3 можно использовать this.foo='bar' insteaod $scope.foo='bar' . Теперь, как я могу использовать $watch без $ scope?

  • Как загрузить HTML / JavaScript из встроенного ресурса в веб-браузер winform
  • Как выполнить скрипт при обновлении пользовательского элемента
  • Как округлить до двух знаков после запятой?
  • Jquery change background-image
  • Примеры изображений для кода и разметки Q & As
  • Как открыть файл локального диска с помощью Javascript?
  • Настройки Crossdomain в Google Chrome
  • Одна глобальная структура данных в Vue.js
  • Расширение Gmail, sendMessage для фона из контекста страницы
  • Авто-Full Screen для встраивания Youtube
  • Глобальный импорт ES6
  • Почему я не могу присвоить новое значение «this» в прототипе функции?
  • One Solution collect form web for “Использование $ watch без $ scope (контроллер как синтаксис)”

    Существует несколько способов избежать использования $watch при использовании controller as синтаксиса.

    Следующие примеры взяты из сообщения в блоге, которое я написал об исключении $scope .

    Использование ng-change

    Если у вас есть часы, предназначенные для прослушивания изменения свойств, происходящего из поля формы, то ng-change – ваш лучший выбор.

     <input type="text" ng-model="ctrl.name" ng-change="ctrl.search(ctrl.name)" /> MyCtrl.prototype.search = function(name){ //call some service here }; 

    Использование свойств ES5

    Если у вас есть какое-то свойство, которое не связано с полем ввода или будет обновлено с кодом, может показаться, что ваш выбор – это часы. Однако, если вам не нужно поддерживать IE8 или ниже, вы можете воспользоваться преимуществами свойств ES5 для запуска функций, когда что-то изменится на вашем контроллере.

     var MyCtrl = function(){ this._selectedItem = null; }; Object.defineProperty(MyCtrl.prototype, "selectedItem", { get: function () { return this._selectedItem; }, set: function (newValue) { this._selectedItem = newValue; //Call method on update this.onSelectedItemChange(this._selectedItem); }, enumerable: true, configurable: true }); 
    JavaScript делает сайт умным, красочным и простым использованием.