Answer the question
In order to leave comments, you need to log in
What is the correct application structure?
In my understanding, the model should work with the server.
But, if it is made a separate service, the result of the http request for some reason returns "undefined"
controller code
taskApp.controller('taskCtrl', function($scope, $http, taskModel) {
$scope.tasks = taskModel.getTasks()
});
taskApp.service('taskModel', ['$http',
function($http) {
this.getTasks = function () {
$http.get("tasks.json").then(function (response) {
console.log(response.data) // модель правильно получает ответ
return response.data // в контроллер это не приходит, хотя, по идее, должно
})
}
}
]);
$http.get("tasks.json").success(function (response) {
$scope.tasks = response; // работает. Если отдать response.data работать не будет
})
Answer the question
In order to leave comments, you need to log in
//это в твоем сервисе пишешь ф-ии такого типа
function getTasks() {
var defer = $q.defer();
$http.get("tasks.json").then(function (response) {
defer.resolve(response);
}, function (err) {
defer.reject(err);
})
return defer.promise;
}
//теперь можешь с этим работать
$scope.tasks = {}; // а если у тебя есть роутинг, можешь про resolve прочитать, ну или могу пример написать
YourService.getTasks().then(function(response) {
tasks = response; // или response.data смотря, что у тебя там приходит - какая структура
}, function(err) {
$scope.errors = "error";
})
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question