2015-12-11 3 views
0

Пожалуйста, если кто-то может мне помочь,AngularJS: Dependency инъекции ngResource

У меня возникли проблемы с ngResource, я искал решение в течение 2 часов, но ничего не нашел, так что я решил поставить вопрос, хотя есть похожие вопросы по этому вопросу!

Я использую AngularJS версии 1.4.7

Я работаю с услугами только штрафом, а затем решили использовать $ ресурс,

веб-сервис возвращает список рекламных роликов.

здесь app.js:

var myApp = angular.module('btAngApp' , ['ngMessages','ngResource']) 
.run(function($rootScope){ 
    $rootScope.endPoint = "http://localhost:8082/serverprject/rest/"; 
}); 

завод:

myApp.factory('commercialFactory', function($rootScope, $resource){ 
    return $resource($rootScope + 'commercial/findall'); 
}); 

контроллер:

myApp.controller('editComCtrl', function($scope, $filter, $http, commercialFactory) { 
$scope.init = function(){ 
    $scope.getAll(); 
}; 

$scope.getAll = function(){ 
    $scope.commercials = commercialFactory.query(); 
} 

$scope.init(); 

Я использую $ HTTP и $ фильтра в другом коде следующее код контроллера выше, я не копировал его здесь.

Я включил все файлы выше в index.html и загрузил angular-resource.min.js.

Я пробовал много сценариев, но с той же ошибкой (сделайте контроллер и завод в том же файле, введите код фабрики внутри контроллера, ....) , если я не ввожу ngResource в угловом .module я получаю эту ошибку:

Error: [$injector:unpr] http://errors.angularjs.org/1.4.7/ $injector/unpr?p0=%24resourceProvider%20%3C-%20%24resource%20%3C-%20editComCtrl

Если я делаю, я получаю это:

Error: [$injector:modulerr] http://errors.angularjs.org/1.4.7/ $injector/modulerr?p0=btAngApp&p1=%5B%24inj....

ответ

1

the factory :

return $resource($rootScope + 'commercial/findall'); 

, может быть, это должно быть: $rootScope.endPoint + 'commercial/findall'


Для ошибки поставщика, вместо этого, вы должны убедиться, что ngResource будет загружен до вашего приложения, и, конечно же, после angularjs

+0

О да, моя ошибка, для провайдера я сделал, как вы сказали мне, теперь он работает только имея небольшие проблемы с моим URL. Огромное спасибо. – Ghita

+0

вы должны проголосовать за меня! – Hitmands

1

На фабрике вы возвращаете объект ресурса напрямую.

На заводе вы должны иметь некоторые методы или переменные, которые вы можете получить доступ к его использовании фабрики

Я думаю, вы должны назначить его на какой-либо переменной, а затем вернуться, так что вы можете получить доступ к нему с помощью фабрики.

что-то вроде этого ..

return { 
      resourceHandle: $resource($rootScope + 'commercial/findall') 
    } 

, а затем использовать его в контроллере, как

$scope.getAll = function(){ 

    $scope.commercials = commercialFactory.resourceHandle.query(); 
} 

$scope.init(); 
+0

это не сработало, я получил ошибку синтаксиса Ошибка, которую я получаю сейчас: Ошибка: $ resource: badcfgResponse не соответствует настроенному параметру. – Ghita

+0

пропустил одну точку, как упоминалось выше, Hitmands ... $ rootScope.endPoint + 'commercial/findall'. – Yogesh

+0

Проблема, о которой вы упоминаете, касается метода, который вы вызываете на объекте resouce ...... Я думаю, проблема в том, что вы вызываете метод ... вместо запроса tryi call get get – Yogesh

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