У меня есть следующий контроллер и http-запрос.доступ «это» в обратном вызове ошибки HTTP
Я устанавливаю connectionError в false и хочу установить его true в callbackError в HTTP-запросе.
я получаю следующее сообщение об ошибке при использовании this
Cannot set property 'connectionError' of undefined
Все отлично работает, когда я использую $scope
.
Я прочитал следующую статью https://toddmotto.com/digging-into-angulars-controller-as-syntax/, которая объясняет многое о this
и scope
и отчасти понимаю, что в моем коде ниже this
, который первоначально устанавливает «ConnectionError» ложь не то же самое this
в функции callbackError как this
относится к функции, в которой он находится ...?!? (ну это в настоящее время то, что я интерпретирую ...)
Так что мой вопрос: есть ли способ установить «connectionError» в true. Или это классический пример, где лучше подходит $scope
?
Код:
var userApp = angular.module('UserApp', []);
userApp.controller('UserListCtrl', ['$scope', '$http', function ($scope, $http){
var type = this;
type.users = [];
// doesn't work
this.connectionError = false;
// works
$scope.connectionError = false;
// get the data
$http.get('./types/users.json')
// on success
.then(function successCallback(response){
type.users = response.data;
},
// on error
function errorCallback(response){
// doesn't work
this.connectionError = true;
// works
$scope.connectionError = true;
});
}]);
Внутренний контроллер или функция связи вы должны использовать '$ scope' для углового двигателя. –