Как связать "это" в Angular 1.4 с новыми компонентами маршрутизатора, вместо использования локальных переменных?

У меня есть контроллер компонентов, и чтобы использовать его внутри локальных функций, я должен объявить локальную переменную.

Есть ли лучший способ привязать "это" внутри нового углового маршрутизатора? Например, эта функция:

function appController ($router, $scope, $location,  authService, $scope, $timeout) {
  this.authService = authService;
  this.pageTitle = "title";
  _this = this;
  //when location changes does some stuff
  $scope.$on('$locationChangeSuccess', function (event, newLoc, oldLoc){
    //hides the notifier
    _this.accountCollapse = false;
    _this.pageTitle = $location.path();
  });
}

Есть ли другой способ сделать это? Быстрее / лучше?

1 ответ

Я думаю, что этот путь самый быстрый. Но вы должны объявить переменную _this с оператором var, чтобы предотвратить некоторые ошибки в будущем

var _this = this;

Другим вариантом будет привязка this так слушать слушателя:

  $scope.$on('$locationChangeSuccess', (function (event, newLoc, oldLoc){
    //hides the notifier
    this.accountCollapse = false;
    this.pageTitle = $location.path();
  }).bind(this));
Другие вопросы по тегам