D
D
Denis Denis2015-11-21 15:18:33
Angular
Denis Denis, 2015-11-21 15:18:33

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()
});

model code
taskApp.service('taskModel', ['$http',
    function($http) {
        this.getTasks = function () {
            $http.get("tasks.json").then(function (response) {
               console.log(response.data)  // модель правильно получает ответ
                return response.data  // в контроллер это не приходит, хотя, по идее, должно
            })
        }
    }
]);

if you put it in the controller
$http.get("tasks.json").success(function (response) {                
                    $scope.tasks = response;  // работает. Если отдать response.data работать не будет
                })

Works.
Tell me, please, what am I doing wrong?
And it's not clear what to return from the response or response.data model?
Can't this structure be used? o_O
Thank you

Answer the question

In order to leave comments, you need to log in

2 answer(s)
V
Vladislav, 2015-11-22
@golovewkin

//это в твоем сервисе пишешь ф-ии такого типа
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";
})

but in general instead of $scope.tasks do something like this:
Controller:
var vm = this;
vm.tasks = {};
html:
{{ctrl.tasks}}

A
Alexey Ukolov, 2015-11-21
@alexey-m-ukolov

How to pull data from a function?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question