Как связать "это" в 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));