2013-11-28 2 views
0

Почему только тот, который не использует $ resource.get(), работает? Я использую кендо-угловое обновление. Это как-то связано с асинксом? Основная переменная выглядит точно так же, поэтому это должно иметь какое-то отношение к $ resourse. Что я missing`

Это работает:

app.controller('SubjectCntrl', ['$scope', 'categoryService', function($scope, categoryService) { 

    var main = categoryService.getCategories(); 
    var subjects = { 
     data : [main] 
    }; 
    $scope.subjects = { 
     dataSource: subjects 
    }; 
}]); 

Это не:

app.controller('SubjectCntrl', ['$scope', 'categoryService', 'ApiFactory', function($scope, categoryService, ApiFactory) { 
    ApiFactory.get(function(categoriesData) { 
     var main = categoryService.getCategories(); 

     var subjects = { 
      data : [main] 
     }; 
     $scope.subjects = { 
      dataSource: subjects 
     }; 
    }); 
}]); 

Фабрика:

app.factory('ApiFactory', ['$resource', function($resource) { 
    return $resource('http://localhost:8080/rest/forum/categories/1'); 
}]); 

Услуги:

app.service('categoryService', ['$resource', function($resource){ 


    this.getCategories = function(){ 
     var farmingSubjects = [ {text: "Poteter", spriteCssClass: "subject"}, {text: "Agurk", spriteCssClass: "subject"} ]; 
     var forestSubjects = [ {text: "Tall", spriteCssClass: "subject"}, {text: "Gran", spriteCssClass: "subject"} ]; 
     var animalSubjects = [ {text: "Hundar", spriteCssClass: "subject"}, {text: "Katter", spriteCssClass: "subject"} ]; 

     var farming = { text: "Jordbruk", items: farmingSubjects }; 
     var forest = { text: "Skogshold", items: forestSubjects }; 
     var animals = { text: "Dyrebruk", items: animalSubjects }; 

     var subjects = [farming, forest, animals ]; 

     var main = { text: "Huvudemner", expanded: true, items: subjects}; 
     return main; 
    }; 
}]); 

Редактировать: Функция успеха называется без сомнения.

ApiFactory.get(function(data){ 
     console.log('success, got data: ', data);  
    }, function(err){ 
     alert('request failed'); 
    }); 
+0

Показать код 'categoryService'. – Chandermani

+0

Если вызов ApiFactory не удался, ваш код обратного вызова не будет вызван. – Chandermani

+0

@Chandermani см. Редактирование: он просто возвращает данные. Ничего странного. – pethel

ответ

0

Я думаю, что второй случай не работает, потому что вы ApiFactory вызов не удается. Обратный вызов, который вы заявили, имеет успех.

+0

Это называется. Я могу зарегистрировать его в обоих случаях. Ошибка только в том, что область обновления не обновляется. – pethel

+0

Я постараюсь добавить один для ошибки. Будут искать это. Но данные каротажных данныхДата прошлого в качестве параметра выглядит нормально. – pethel

Смежные вопросы