Uncaught Error при использовании Angular Factory для предоставления вызовов API

Я пытаюсь создать службу, чтобы предоставить моему приложению полный доступ ко всем отдельным ресурсам API, доступным из одной службы. Прямо сейчас я создал свой основной модуль приложения Angular и службу API под названием APIService. У службы есть фабрика, которая возвращает несколько доступных Angular $resource в разные API. Вот код.

 var app = angular.module('MYAPP', ['ngRoute', 'ngSanitize', 'ngResource', 'apiService']);


    var APIService = angular.module("apiService", ["ngResource"]);
        APIService.factory("API", function ($resource) {
               var apiFactory = {};

               apiFactory.Alerts = $resource('/WebApi/Alert/:type/:id', {id:'all'},
                {
                    systemUpdate: { method: 'GET' },
                    autoArchive: { method: 'POST', url: '/WebApi/Alert/Template/:type' }
                });

               return apiFactory;
           });

Однако, когда я пытаюсь загрузить страницу, я получаю Uncaught Error в файле angular.js. Я делаю что-то не так здесь?


person Matt Hintzke    schedule 19.06.2014    source источник
comment
Я предполагаю, что вы используете Chrome из-за этого надоедливого сообщения об ошибке Uncaught. Chrome скрывает от вас настоящее длинное сообщение об ошибке. Попробуйте FireFox и посмотрите, получится ли у вас более полезное сообщение об ошибке :)   -  person Sunil D.    schedule 19.06.2014


Ответы (1)


Вы забыли определить функцию внутри вашего объекта:

     apiFactory.Alerts = function(){

         return $resource('/WebApi/Alert/:type/:id', {id:'all'},
            {
                systemUpdate: { method: 'GET' },
                autoArchive: { method: 'POST', url: '/WebApi/Alert/Template/:type' }
            });
    }
person Milad    schedule 19.06.2014
comment
Должен ли он использовать функцию? Я не хочу, чтобы apiFactory.Alerts была функцией, я хочу, чтобы это был ресурс $, чтобы я мог получить доступ к ресурсу $ с помощью чего-то вроде API.Alerts.query() - person Matt Hintzke; 20.06.2014
comment
Так что верните вам $resource, где я написал, что вы можете вернуть все, что захотите! я отредактирую - person Milad; 20.06.2014
comment
Если вы не хотите использовать функцию, вам нужно обратиться к другим сервисам, их много в angular, ищите поиск в angular. Но завод справится - person Milad; 20.06.2014