【问题标题】:Uncaught Error when using Angular Factory to provide API calls使用 Angular Factory 提供 API 调用时未捕获的错误
【发布时间】:2014-06-20 04:23:02
【问题描述】:

我正在尝试构建一个服务,让我的应用程序可以完全访问单个服务中可用的每个 API 资源。现在我已经创建了我的主要 Angular 应用程序模块和一个名为 APIService 的 API 服务。该服务有一个工厂,可以将许多可访问的 Angular $resource's 返回给不同的 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;
           });

但是,当我尝试加载页面时,我在 angular.js 文件中得到一个Uncaught Error。我在这里做错了吗?

【问题讨论】:

  • 我猜你正在使用 Chrome,b/c 那个讨厌的“未捕获错误”消息。 Chrome 向您隐藏了一条真实的、更长的错误消息。试试 FireFox,看看你是否能得到更好、更有用的错误消息:)

标签: angularjs


【解决方案1】:

您忘记在对象中定义函数:

     apiFactory.Alerts = function(){

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

【讨论】:

  • 一定要用函数吗?我不希望 apiFactory.Alerts 成为一个函数,我希望它实际上是一个 $resource 以便我可以使用 API.Alerts.query() 之类的东西访问 $resource
  • 所以返回你的 $resource ,我写的地方你可以返回你想要的任何东西!我会编辑
  • 如果您不想使用某个功能,则必须使用其他服务,其中有很多 angular ,在 angular 中搜索 fo searvises。但工厂会完成这项工作
猜你喜欢
  • 2017-01-04
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多