AngularJS $http 未定义

2023-12-02

我对 AngularJS 还很陌生。当我打电话时$http.get我得到一个$http is not defined error.

这是我的模块的内容:

var demoApp = angular.module('demoApp', []);

demoApp.config(function ($routeProvider) {
    $routeProvider.
        when('/view1',
        {
            controller: 'SimpleController',
            templateUrl: 'View1.html'
        }).
        when('/view2',
        {
            controller: 'SimpleController',
            templateUrl: 'View2.html'
        })
        .otherwise({ redirectTo: '/view1' });
});

demoApp.factory('simpleFactory', function () {

    var factory = {};
    factory.getAnnounces = function ($http) {
        $http.post("http://localhost:57034/Announce/GetAllAnnounces")
           .success(function (data, status, headers, config) {
               return data;
           }).error(function (data, status, headers, config) {
               return status;
           });
           };
    return factory;
});

demoApp.controller('SimpleController', function ($scope,simpleFactory) {

    $scope.announces = [];
    init();
    function init()
    {
        $scope.announces= simpleFactory.getAnnounces();
    }

});

我在这里缺少什么?干杯。


您需要按如下方式检查您的代码:

demoApp.factory('simpleFactory', ['$http', function ($http) {

    return {
        getAnnounces: function () {
            $http.post("http://localhost:57034/Announce/GetAllAnnounces")
               .success(function (data, status, headers, config) {
                   return data;
               }).error(function (data, status, headers, config) {
                   return status;
               });
        }
    };

}]);

没有必要通过$http变量在getAnnounces方法定义,因为它已经在工厂函数的范围内定义了。

我正在为 AngularJS 使用参数别名,以避免缩小器出现问题,请参阅'关于缩小的注释' 上AngularJS 网站.

无论如何请注意$http.post.success and $http.post.error are 异步除非您使用承诺,否则您将无法获取数据($q), see here。因此,您可以这样更改代码:

demoApp.factory('simpleFactory', ['$http', '$q', function ($http, $q) {

    return {
        getAnnounces: function () {
            var deferred = $q.defer();

            $http.post("http://localhost:57034/Announce/GetAllAnnounces")
               .success(function (data, status, headers, config) {
                   deferred.resolve(data);
               }).error(function (data, status, headers, config) {
                   deferred.reject(data);
               });

            return deferred.promise;
        }
    };

}]);

并且在SimpleController:

demoApp.controller('SimpleController', ['simpleFactory', '$scope', function (simpleFactory, $scope) {

    $scope.announces = []; 

    simpleFactory.getAnnounces()
        .then(function(data) {
            // call was successful
            $scope.announces = data;
        }, function(data) {
            // call returned an error
            $scope.announces = data;
        });

}]);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS $http 未定义 的相关文章

随机推荐

  • 黑莓推送通知教程

    我已向 RIM 注册进行推送通知评估 但我找不到实现推送通知的好来源 sdk中有一些示例 但我找不到实现它们的方法 所以 我正在寻找一个很好的教程 在那里我可以找到推送通知服务的逐步实现 RIM 的服务器端示例涉及设置 Web 应用程序容器
  • 如何启用同步而不每隔几秒同步一次

    我使用过 Google 的 Android 开发者文档 http developer android com training sync adapters 创建同步系统 我的应用程序现在在 帐户 下的 Android 设置 中有一个条目 当
  • 读取 pySpark 中的文件范围

    我需要读取 pySpark 中的连续文件 以下内容对我有用 from pyspark sql import SQLContext file events parquet exportDay 2015090 1 7 df sqlContext
  • gs:// 没有 CORS 配置

    我正在尝试在按钮单击事件上从 Firebase 存储中下载文件 但它给了我 Access Control Allow Origin 错误 https firebase google com docs storage web download
  • ajax 如何与 python 一起工作? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我一直在谷歌上搜索 但不太明白ajax是如何工作的 有人可以解释一下这是如何工作的吗 a
  • 根据线程 ID 过滤 adb logcat 的输出

    我正在使用 adb logcat v threadtime 来获取包含时间和线程 ID 的格式的输出 我想知道是否有一种方法可以根据线程 id tid 过滤输出 我只想从某些线程获取输出 现在我可以获得线程 ID 但不能获取过滤后的输出 T
  • 错误的坐标白色获取项目相对于其父项的真实位置

    我有一个简单的场景 只有 2 个Rectangles 区别在于第一个使用绝对坐标 第二个使用anchors 在这种情况下 两个矩形都放置在同一位置 但我得到的坐标完全不同 import QtQuick 2 4 import QtQuick
  • 获取 SQL Server 表中每列的每个值的计数

    所以我查了一下 这个问题非常相似 但缺少一个关键部分 SQL Server 计算表中每一列中不同值的数量 因此 在这个问题中 他们想要每列的不同计数 我想要做的是获取表中每一列的每个不同值的计数 并且我正在对特定数据库中的所有表执行此操作
  • 如何从 ElasticSearch 中彻底删除某些内容?

    我们使用 ELK 堆栈进行日志记录 我被要求设计一个流程来删除意外记录的敏感信息 现在基于我对 ElasticSearch Lucene 如何处理的阅读删除和更新数据仍在索引中 只是不可用 随着索引合并等 它最终会被清理 是否有一个流程来运
  • 动态三元运算符

    为什么以及如何在下面的代码中工作 dynamic x c a new D1 x new D2 但不是这个 dynamic x c a new D1 new D2 Code class Program static void Main str
  • 无法正确设置 Android Actionbar 背景

    问题当我设置 ActionBar 背景颜色时 该栏看起来像这样 我无法在这里上传图片 所以这是文件 Android ActionBar问题 我的价值观 风格文件
  • 如何在 Adob​​e Flex 中合并 DataGrid/Advanced DataGrid 中的单元格

    我需要合并单元格 如图所示 Flex 以我的理解 并没有直接提供这一点 你有几个选择 无论哪种方式 您可能需要在分层模型中排列数据 有 3 个孩子的家长似乎描述了您的问题 我看到的第一个选项涉及直接将您的数据声明为高级数据网格的分层结构 如
  • 找出 Eclipse 运行在什么 JVM 上

    我目前正在尝试调整 Eclipse 安装并遇到了 vm 选项 SO 上的其他帖子提到 始终使用可用的最新 JVM 是件好事 因为它们在性能方面不断变得更好 所以我很可能会这样做 我想知道如果您没有指定 vm 参数 您如何找出 Eclipse
  • jenkins 不执行 mvn 命令后的最后一个命令

    我将我的工作配置为自由式 我需要将案例运行到指定的机器上 我的项目是maven项目 我想在案例运行完成后将报告复制到主节点 詹金斯版本 1 483 我使用 pscp 复制文件 这些文件在 Windows 命令提示符下手动工作正常 我的命令如
  • 使用 PHP 和 PDO 访问 Microsoft

    我正在尝试连接到我的访问数据库 但无法连接 我的 Microsoft server 2008 上装有 IIS 7 我不断收到此错误消息 SQLSTATE IM002 SQLDriverConnect 0 Microsoft ODBC 驱动程
  • 陈述/计算的生日悖论

    显然 我实际上应该创建一个数组 在多次试验中随机分配生日 5000 然后 假设每次有 2 50 个人至少有 2 个生日时进行计数 并将结果除以 5 000 以获得近似概率 我相信我的循环搞砸了 需要一些反馈 不是代码 我想确切地了解出了什么
  • Hive SELECT 语句创建结构数组

    我在 Hive 中选择结构数组时遇到问题 我的源表如下所示 field id fieldid fieldlabel fieldtype answer id unitname 这是调查数据 其中id是调查id 中间的四个字段是响应数据 uni
  • 从 Excel VBA 运行 R,无需 RExcel

    这个过程可以简化吗 首先 我在 R 中手动打开该文件 C R ExampleModel ModelScript R 在 R 编辑器中 当从打开的 ModelScript R 文件运行以下代码时 它会正确处理 Model R 脚本 sourc
  • 我应该如何将 UIImage 存储在我的 Core Data 数据库中?

    我正在开发一个应用程序 需要将大约 100 张或更多图像与其他相关信息一起预先插入到核心数据数据库中 现在 我只需编写几行代码就可以轻松添加其他数据 但对于 UIImages 我不确定如何在不编写大量代码的情况下做到这一点 我想知道 是否有
  • AngularJS $http 未定义

    我对 AngularJS 还很陌生 当我打电话时 http get我得到一个 http is not defined error 这是我的模块的内容 var demoApp angular module demoApp demoApp co