Я новичок в angularjs, который я исследовал в Интернете, но я не мог найти подходящего решения для своей проблемы. Я сделал http-вызов, чтобы получить некоторые данные от контроллера. Сторона контроллера в порядке. Но клиентская сторона, обещание не ждет данных. Здесь коды, которые я написал;MVC и Angularjs: обещание не ждет данных
//service code
angular.module("myApp").service('$myService', function ($http, $q) {
this.getDataArray = function() {
var deferred = $q.defer();
$http.get('../Home/GetDataArray')
.success(function success(response) {
deferred.resolve(response);
})
.error(function() {
console.log("error getting data array");
deferred.reject();
});
return deferred.promise;
};
}
// controller-code
angular.module("myApp").controller('dataController', function ($scope, $http, $myService) {
$scope.getDataFromService = function() {
$myService.getDataArray().then(function (response) {
$scope.dataArray = response.data;
});
};
});
}
Когда я вызвать метод getDataFromService сначала $ scope.dataArray пуст, но второй вызов, $ scope.dataArray заполняется данными. В чем проблема? Спасибо за помощь.
Вы можете проверить результат первого HTTP-вызова в инструментах fiddler/chrome dev? – fikkatra
Я также проверил его, но когда я сделал первый вызов, $ scope.dataArray пуст, потому что обещание не ждет, так как я сказал –
Я не имею в виду $ scope.data, я имею в виду сам HTTP-вызов. Вы абсолютно уверены, что ответ первого вызова (как видно из инструментов Chrome dev) содержит данные? – fikkatra