Пожалуйста, проверьте код, указанный ниже. Я только что проиллюстрировал ионный пример всплывающего окна.Использование 'this' внутри услуг AngularJS
На showAlert1() я ссылаюсь на это «как есть», и он не работает. В showAlert2() я использую вспомогательную переменную «_this», которая получает «это», и она работает.
Я видел подобные вещи, происходящие в других случаях, и я считаю, что это связано с синтаксисом «Контроллер как», но почему это происходит?
angular.module('myApp', ['ionic'])
.controller('PopupCtrl',function($scope, $ionicPopup) {
this.testAlert = function() {
alert('Alerting!');
};
this.showAlert1 = function() {
$ionicPopup.alert({
title: 'Don\'t eat that!',
template: 'It might taste good'
}, this).then(function() {
this.testAlert();
});
};
this.showAlert2 = function() {
var _this = this;
$ionicPopup.alert({
title: 'Don\'t eat that!',
template: 'It might taste good'
}, _this).then(function() {
_this.testAlert();
});
};
});
Вот код Pen: http://codepen.io/anon/pen/dPJVNN
Спасибо!
Возможный дубликат [Как работает ключевое слово this?] (Http://stackoverflow.com/questions/3127429/how-does-the-this-keyword-work) – JLRishe