无法使用 $http angularjs 获取结果数据

2024-02-07

我尝试使用 $http,但为什么它返回 null 结果?

angular.module('myApp')
.factory('sender', function($http) {
    var newData = null;
    $http.get('test.html')
        .success(function(data) {
            newData = data;
            console.log(newData)
        })
        .error(function() {
            newData = 'error';
        });
    console.log(newData)
    return newData
})

控制台说:http://screencast.com/t/vBGkl2sThBd4 http://screencast.com/t/vBGkl2sThBd4。为什么我的newData先是null然后又被定义了?怎样做才正确呢?


正如 YardenST 所说,$http是异步的,因此您需要确保依赖于您返回的数据的所有函数或显示逻辑$http.get(),得到相应的句柄。实现这一目标的一种方法是利用“承诺”$http返回:

笨蛋演示 http://plnkr.co/edit/9w2jTg?p=preview

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

myApp.factory('AvengersService', function ($http) {

    var AvengersService = {
        getCast: function () {
            // $http returns a 'promise'
            return $http.get("avengers.json").then(function (response) {
                return response.data;
            });
        }
    };

    return AvengersService;
});


myApp.controller('AvengersCtrl', function($scope, $http, $log, AvengersService) {
    // Assign service to scope if you'd like to be able call it from your view also
    $scope.avengers = AvengersService;

    // Call the async method and then do stuff with what is returned inside the function
    AvengersService.getCast().then(function (asyncCastData) {
            $scope.avengers.cast = asyncCastData;
    });

    // We can also use $watch to keep an eye out for when $scope.avengers.cast gets populated
    $scope.$watch('avengers.cast', function (cast) {
        // When $scope.avengers.cast has data, then run these functions
        if (angular.isDefined(cast)) {          
            $log.info("$scope.avengers.cast has data");
        }
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 $http angularjs 获取结果数据 的相关文章

  • 响应 301 永久移动

    我曾经得到以下对 php 请求的响应 回复
  • Angular UI 模式的范围问题

    我无法理解 使用角度 UI 模式的范围 虽然这里不是很明显 但我已经正确设置了模块和所有内容 据我所知 但这些代码示例尤其是我发现错误的地方 index html 其中重要部分 div class btn group div
  • Django 响应总是用 text/html 分块无法设置内容长度

    在我的Django应用程序的views py中 我在尝试设置以下HTTP标头字段后返回一个HttpResponse对象 Create a Response Object with the content to return response
  • $resource.query 返回分割字符串(字符数组)而不是字符串

    我正在使用像下面这样的 Angular resource angular module app factory data function resource var Con resource api data update method P
  • 仅当显式选择行时才关闭 ui-bootstrap typeahead

    我创建了这个jsBin http jsbin com livuqafe 2 edit来证明我遇到的问题 如果您转到此处 请尝试输入 五 并继续 你的自然反应是输入 五 然后按 Tab 如果你想要 五百 你可以向下箭头一次 但是 在这种情况下
  • 使用 Http Post 发送图像

    我想使用 Http Post 将图像从 android 客户端发送到 Django 服务器 该图像是从图库中选择的 目前 我正在使用列表值名称 Pairs 将必要的数据发送到服务器并接收来自 Django 的 JSON 响应 是否可以对图像
  • 如何使用 Ruby on Rails 3 检查 HTTP 请求的“Content-Length”字段?

    我正在使用 Ruby on Rails 3 在我的视图文件中我有以下代码 为了避免服务器过载 我会在服务器接收上传文件之前检查上传文件的大小 这是因为 按下表单的提交按钮 服务器会先完整接收文件 然后再检查文件 我知道一个HTTP 请求有标
  • Chrome 中的性能问题

    我目前正在从事一个相对较大的项目 使用 AngularJs 构建 应用程序的一部分是一个表单 您可以向其中添加任意数量的页面 不幸的是 添加了很多不必要的垃圾 即表示表单模型的对象可能会变得非常大 在某些时候 Chrome 基本上无法处理它
  • 如何使用 ng-repeat 复选框和 Angularjs 过滤表格

    曾几何时 这是可行的 但不知何故它被破坏了 我希望能够使用 ng repeat 生成复选框 以根据存储的数据获取所需数量的复选框 并使用它们来过滤生成的表 此外 我不希望重复复选框的相同值 我用代码做了一个plnkr div class r
  • Angular JS $location.path(...) 不触发路由控制器

    所以我尝试使用更新表单提交上的路径 location path search 但它没有触发注册的路线 search 我也尝试过使用尾部斜杠 没办法 我也试过了 scope apply但我刚刚得到 apply already in progr
  • 禁用在 django Rest Framework 中创建嵌套对象

    Hi 你能帮我怎么做吗禁用创建嵌套对象 我有这样的序列化器 员工拥有团队的外键 class TeamSerializer serializers ModelSerializer class Meta model Team fields id
  • 如何在点击时添加和删除活动类 - 角度方式

    我正在这样做 div class tiles div 控制器 scope select function item scope selected item scope isActive function item return scope
  • 在单页应用程序上重用 Google Maps API 实例

    假设我有一个单页应用程序 Angular JS 应用程序 并且我在元素 id 上绘制一个 Google 地图实例googleMap var mapInstance new google maps Map document getElemen
  • AngularJS 创建全局键盘快捷键的方式是什么?

    我想我应该使用指令 但将指令添加到正文似乎很奇怪 但监听文档上的事件 执行此操作的正确方法是什么 更新 找到 AngularJS UI 并看到their https docs angularjs org api ng directive n
  • Angularjs 范围之外的服务功能

    我在 angularJS 中创建了一个服务 它使用 btford socket io 模块与服务器交互 由于在服务中我已经实现了一些目前在 Angular 内部使用的 API 但为了以后扩展应用程序 我还需要在 Angular 范围之外提供
  • angularjs ng-repeat 在两个级别上但只有一个输出

    我有一个看起来像这样的大物体 scope marketplaces first example second example 我想做的是循环遍历大对象 如下所示 section ul li li ul section 在循环内部 再次循环每
  • 卸载/销毁 Angular 延迟加载组件

    我的设置与此处找到的帖子类似http ify io lazy loading in angularjs http ify io lazy loading in angularjs 处理 Angular 中我的应用程序的各种组件的延迟加载 我
  • Typescript:如何在自定义过滤器中使用角度 $filter

    如何在自定义过滤器中使用 Angular filter 如何注入 filter依赖 module Filters export class CustomFilter public static Factory return function
  • 获得一次性绑定以适用于 ng-if

    这个问题已经被之前问过 https stackoverflow com questions 23969926 angular lazy one time binding for expressions 但我无法让该解决方案发挥作用 所以我想
  • 为什么混合插值和表达式是不好的做法

    来自文档 在表达式内嵌入插值标记 Note AngularJS 指令属性采用任一表达式or带有嵌入表达式的插值标记 已经被考虑了不好的做法将插值标记嵌入表达式中 AngularJS 开发人员指南 插值 https docs angularj

随机推荐

  • Python shift() 从同一列,就像 Excel 中的日期一样

    我想在 python 中创建 target start 列 id start end diff target start 12220 1999 11 22 2008 08 31 3515 1999 11 22 12220 2018 04 1
  • c# - 如何以编程方式检查解决方案中的引用是否配置正确

    我们遇到了一些构建错误 需要手动修复引用 我想以编程方式检查是否定义了项目引用而不是 dll 引用 因此 请检查解决方案中的所有引用 并针对每个项目检查引用的定义是否正确 这样相关的依赖就会被正确配置 有人知道现有的解决方案吗 我想要一个在
  • 如何将WPF动画逐帧渲染为视频?

    我在 WPF 中创建了一个我喜欢的很好的效果 我希望能够 记录 这个效果 但运行时却很不稳定 有没有办法可以将其转换为逐帧过程并自己将其另存为视频 而不是尝试在播放期间录制它 基本上我想将 WPF 渲染为视频 或列出一系列保存为位图的帧 关
  • Nest.js 中使用 @nestjs/passport 进行可选身份验证

    我有一条需要经过身份验证和未经身份验证的用户使用的路线 我用 UseGuards AuthGuard jwt 启用身份验证 但它会阻止任何未经身份验证的用户访问该路由 正常 如何允许未经身份验证的用户也访问该路由 似乎没有我可以传递的选项A
  • 如何在 Git 中分离子目录但保留所有分支

    我一直在关注这个问题的答案将子目录分离到单独的 Git 存储库中 https stackoverflow com questions 359424 detach subdirectory into separate git reposito
  • UITableView 不重用单元格,这样做的好例子吗?

    我的 UITableView 有 5 个单元格 每个都有一个 UITextField 作为子视图 用户将在其中输入数据 如果我确实使用单元格重用 则当单元格滚动到视图之外时 文本字段将被清除 我不想处理这个问题 有没有办法不重复使用单元格
  • 如何编辑引导程序导航栏的样式?

    我正在尝试编辑引导导航栏的样式 但是 例如 我无法编辑颜色和删除边框 我想将颜色更改为白色 并将边框颜色更改为白色 并且我已包含以下代码 谁能告诉我我做错了什么 navbar default background color ffffff
  • 更改单元格中某些字符的颜色

    我在单元格 A1 中有一句话 我想要其中 50 个 我想将任何数字字符设置为红色文本 只是数字字符 我该怎么做呢 这是我所拥有的框架 Sub RedText Dim i As Integer For i 1 To Len Cells 1 1
  • webpack.config.js 不断将bundle.js 的脚本标记添加到我的index.html 中

    我有如下的 webpack config js var path require path var webpack require webpack var HtmlWebpackPlugin require html webpack plu
  • Angular,如何从字符串解析模板并传递当前上下文变量

    我制作了一个简单的组件来创建表 Component selector admin table template table class table table bordered thead th column label th thead
  • 如何在 if 语句中使用 grep?

    我有以下命令可以给出正确的结果 grep include java Ri System loadLibrary 但是 如果我将它放在 if 条件中 无论字符串是否存在 它总是返回相同的 0 结果 if grep include java R
  • 如何取消引用已传递给子例程的 Perl 哈希引用?

    我仍在尝试解决我的哈希取消引用问题 我当前的问题是我现在将 hashref 传递给子组件 并且我想在该子组件中取消引用它 但我没有找到正确的方法 语法来做到这一点 在 sub 中 我想迭代哈希键 但 hashref 的语法与哈希不同 我知道
  • Java:需要从字节数组创建 PDF

    我从 DB2 表中得到了 blob 我正在将其转换为字节数组 以便我可以使用它 我需要获取字节数组并创建一个PDF出来了 这就是我所拥有的 static void byteArrayToFile byte bArray try Create
  • 哪些列表可以作为临时列表?

    当处理项目列表时 列表仅充当暂时的容器 您建议我使用哪些列表类型 I 不想手动销毁列表 想要使用built in列表类型 无框架 库 想要仿制药 可以在不导致泄漏的情况下实现这一点的东西 function GetListWithItems
  • 使用ionic安装和卸载cordova应用程序时执行脚本

    我使用 cordova 已经有好几年了 使用 ionic 的时间还不到一年 我正在寻找在安装应用程序和卸载应用程序时运行 JavaScript 函数的方法 我做了很多搜索 但没有找到任何相关内容 有人有一个想法 至少有一个近似值可以作为起点
  • 让menhir将用户定义的函数从.mly添加到.mli

    Menhir 允许将任意 ocaml 代码添加到 mly 文件的末尾 我想在其中声明一些函数 但我找不到一种方法让 menhir 将我的函数添加到 mli 文件中 以便它们从其他模块中可见 是否可以 答案很简单 那就是no 中定义的代码 m
  • 解决导航属性 Dynamics WebAPI 深度插入时出现的错误

    我正在使用微软动态Web API https msdn microsoft com en us library mt607689 aspx将数据写入 Microsoft Dynamics 365 中的实体 当我尝试执行深插入 https m
  • 用于 Angular.js 依赖注入管理的 Grunt.js

    我正在使用 Grunt 自动构建我的网络应用程序 我遇到了一个有趣的问题 我有两个选择 1 grunt dev and 2 grunt build grunt dev只执行与开发相关的基本任务 我的 主要 Angular 模块如下所示 va
  • Py_None 的值

    我很清楚None用于表示缺乏价值 但由于在实现过程中一切都必须有一个潜在的价值 所以我想看看使用了什么值来表示没有值 关于CPython 我理解 基于文档 https docs python org 3 c api none html c
  • 无法使用 $http angularjs 获取结果数据

    我尝试使用 http 但为什么它返回 null 结果 angular module myApp factory sender function http var newData null http get test html success