问题标签 [angular-promise]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - AngularJS + $q,在多个 ajax 调用完成后做一些事情
我需要在页面加载时加载一些数据,然后执行任务。为了获得我想要的数据,我执行了多个不同的 ajax 调用。但为了执行任务,我需要确保所有的 ajax 调用都已完成。这是我到目前为止所做的:
我的问题是所有ajax调用完成后块中的代码then(...);
没有执行。我在控制台中得到类似的东西:
我一定做错了什么。我怎样才能让它按我想要的方式工作?
编辑:我尝试了以下答案,就像答案中提到的那样,但我仍然面临同样的问题。
angularjs - 最后一个链式承诺没有运行
我已经链接了一些我想按特定顺序执行的方法。第二种方法deviseLogin()
返回一个 URL,应该在下一个方法中传递redirect(url)
第一种和第二种方法运行,但我从来没有从最后一个听到任何消息redirect(url)
。你能看出我做错了什么吗?
javascript - Angularjs,等待一个嵌套的承诺
我有 3 个服务返回 3 个承诺,但第三个需要来自第二个的数据,所以我在第二个中调用它。我想等待解决所有三个承诺,这是我实现的方式,但不起作用(只等待第一个和第二个)。
javascript - angularjs 处理 $resource $promise 错误
如果连接到我的 API 时出现错误,有人可以帮我弄清楚如何在我的 AngularJS 工厂中返回硬编码数据。我的硬编码数据位于另一个名为“dataFactory”的工厂中。感谢您的帮助。
我的 dataFactory 定义如下:
javascript - Angularjs 向调用者对象返回 $http 响应
如何将响应值传递给父对象。在 angularjs 中进行 http 服务调用的调用者?我拥有的是一个 BaseModel ,它将执行如下操作。这个想法是 basemodel 对象实例应该具有响应值。顺便说一句,我试图避免使用广播等。
调用对象
定义:
}];
实际的BaseModel:
angularjs - 注入指令的角度 ui-router 工厂/服务为空
我有一个使用 ui-router 的 Angular 应用程序,如下所示:
我已经使用 ui-router 定义了状态:
appState 服务定义如下:
我定义了一个指令如下:
该指令作为状态“app.state2.detail”的模板中的属性应用:
我能够将 appState 注入我的任何控制器并访问 appState 中的属性。但是,当我将 appState 注入到我的指令中时,如图所示,它是一个空对象,即指令中的 {},我无法访问应该在其中的属性。
为了解决这个问题,我将 appState 注入到我的顶级控制器范围中,以便它向下继承到 state2DetailsCtrl 的范围。然后我通过 scope['appState'] 在指令中访问它,然后我可以按预期访问 appState 属性。但是,我原以为我可以将 appState 注入指令中?
当我将 appState 注入指令时,为什么它是一个空对象 {}?您如何将工厂/服务注入指令中?
javascript - 角度服务返回对象?
据我了解,Angularjs 服务是通过传入一个构造函数来创建的:
Angular 使用new操作符运行这个函数。
我正在通过这项服务,我没有看到任何“这个”内幕
事实上这个函数返回 deferred.promise
有人可以阐明这里发生了什么吗?
angularjs - AngularJS:返回 $http 承诺的测试工厂
尝试测试返回$http
GET 请求和then
处理程序的角度服务,但我无法测试逻辑是否在then
函数内部实际工作。这是服务代码的基本截断版本:
这是测试:
我觉得我已经尝试了几乎所有方法来测试then
通话中的逻辑,所以如果有人可以提供建议,我将不胜感激。
编辑:我的问题也是由于非标准的注射做法,所以下面的答案在此之外起作用。
javascript - 为什么 $http.get 不需要返回任何东西?
我正在开发一个角度应用程序,并且我有一个正在调用服务的控制器。控制器向服务发送一个 URL。该服务向该 URL 发送一个 GET 请求并接收回 JSON。在那个 JSON 中是一个用于 Http 请求的 Uri。我从 JSON 中提取该 Uri,然后将浏览器重定向到它。
从端点返回的JSON如下所示
服务代码
控制器代码
正如您所看到的,我正在做一些日志记录来分解 JSON,并准确找出返回给我的内容以及如何访问返回对象的属性。
我的问题是:
- 为什么我不需要
return data;
在我的$http .success
通话中?在什么情况下我需要? - 有没有办法从调用中的数据对象返回特定属性,
$http .success
这样我就不必调用data.data.uri
我的 Controller 方法?或者我可以在返回的 JSON 有效负载返回到我的控制器之前对其进行修改吗?
json - http.get() 获取反序列化的 JSON 但返回 HTTP 响应?
在我的 Angular 应用程序中,我有一个baseController.js
类和一个类,它们可以通过将自己的范围注入 baseControllerexampleController.js
来访问定义的函数。baseController
这允许在所有控制器之间共享功能。
这是有效的,除非我尝试getDataFromUrl()
从exampleController
. 在调试时我可以看到它getDataFromUrl()
被调用了,它进入了调用的.success()
函数$http.get()
。那时我可以看到它data
是一个反序列化的 JSON 对象(在这种情况下,它是一个对象数组)但是当代码最终返回到它exampleController
的initArray()
函数时data
,它最终收到的不再是反序列化的对象,而是变成了原始 HTTP 响应数据。
baseController.js:
示例控制器.js:
为什么data
返回exampleController
为 HTTP 响应?我希望它保持为反序列化的 JSON!