问题标签 [angular-services]

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.

0 投票
2 回答
4467 浏览

angularjs - AngularJS 服务/控制器不更新角度传单指令映射

我正在尝试使用Angular-Leaflet-Directive 和来自 2 个使用 $resource 调用 Web 服务的不同 Angular 服务的数据来生成地图。这些服务返回包含纬度/经度值的 JSON 消息以填充地图上的标记。

但是,我无法获得使用服务数据的指令。

我可以看到我的服务正在更新范围,因此它们工作正常,并且如果我将值硬编码到控制器中(例如,请参见下面的“中心”),地图标记会正确呈现。我想做的和这个例子很相似

这是我的代码:

控制器:

我发现我的 2 个服务返回,范围用值更新,但这并没有传递给 angular-leaflet-directive。

关于指令的Angular 文档建议指令中的以下代码将子作用域链接到父作用域,以便它们都被更新:

但这似乎对我不起作用。但是,angular-leaflet-directive 路径示例似乎确实允许这样做(您可以添加标记、更改标记等)并且地图会实时更新。

服务返回后,我需要做什么才能使标记出现在我的地图上?

请注意,Stackoverflow 上有类似的问题,但这些问题的答案是将服务调用包含在指令中。我不想这样做,因为控制器提供的功能不仅仅是直接的服务调用,例如处理表单提交等,并且需要访问相同的数据。

0 投票
1 回答
1223 浏览

rest - AngularJS REST异步调用不返回数据

我是 Angular 新手,在一个应用程序中我正在编写 Angular 服务来进行 REST API 调用。

我在做什么如下:

$q.all(newsCall, tweetsCall).then异步调用一样,当我调用我的服务时,我在新闻中得到空数组。

在我的控制器内部,我将其称为dataService.getNewsAndTweets()并获取空数组,据我所知 $q 是一个异步调用,稍后将返回数据。

我该如何解决这个问题?

提前致谢。

0 投票
3 回答
47328 浏览

javascript - $parse、$interpolate 和 $compile 服务有什么区别?

$parse和服务$interpolate有什么区别$compile?对我来说,他们都做同样的事情:获取模板并将其编译为模板函数。

0 投票
1 回答
3178 浏览

javascript - 带有两个参数的 Angular $resource 端点

我有一个使用服务来处理 $resource 的设置,如下所示:

服务

调用函数

但是,当 PUT 调用实际通过时,它会到达端点: /api/events/123/slots/其中 123 是合适的,@Id@slotId永远不会附加。所以,我想要的是/api/events/123/slots/456,但这永远不会发生。

0 投票
2 回答
366 浏览

javascript - AngularJS:在 $provide 时注入依赖项

我是 AngularJS 的新手。我正在尝试在 Salesforce CRM plarform 中开发单页应用程序。我想按需加载依赖项,即仅当用户单击特定链接时。我也通过使用https://github.com/matys84pl/angularjs-requirejs-lazy-controllers实现了这一点

上面的链接仅包含指令示例。我在同一个路由配置文件中添加了服务和过滤器。

我正在注册一个像上面这样的服务,它可以用作,

一切都很好,但我的疑问是,如何在上面的代码中注入 $q、$rootScope 等依赖项。

0 投票
2 回答
6636 浏览

angularjs - 如何在 AngularJS 中使用 Web Worker?

我正在使用AngularJS Seed,我想查看 Web Worker 的工作实现。

我想让一个简单的 Web Worker 工作以理解它,但我遇到了功能问题。

我在services.js中有 Web Worker 代码,如下所示:

js文件夹中,我有一个文件doWork.js,其内容是:

我的controllers.js文件是空的,看起来像这样:

我想要的是查看 Web Worker 的输出。

我使用此设置得到的错误是:

未捕获的类型错误:无法调用未定义的方法“工厂”

0 投票
1 回答
6483 浏览

angularjs - 资源工厂中的AngularJS $timeout

我目前有一个角度应用程序,它在用户登录时调用服务以开始服务器调用以刷新计数,如果用户通过身份验证,则只允许服务器端返回。

当用户注销时,我试图取消该计数器,否则服务器将通过调用基于资源的函数返回 401 未经授权的错误:

问题是,即使我在 $timeout 从服务器返回 401 时调用取消后,计数器仍继续运行。控制台注销返回取消函数返回true(取消已经生效)。我尝试了几种不同的 $timeout 开头的位置都无济于事,有没有办法确保所有的 $timeout 都被取消?我不明白我在这个配置中缺少什么。

编辑

0 投票
2 回答
3134 浏览

angularjs - AngularJS 服务存储 $http 结果以防止重新查询——有没有更好的方法来做到这一点?

设置:我想要一个服务,多个控制器可以查询使用 $http 提取的数据。最初的解决方案是使用这里建议的承诺。

问题:每次控制器查询服务时,服务都会返回一个 $http 承诺,从而导致多个查询一遍又一遍地从远程服务器中提取相同的数据。

解决方案:服务函数返回数据或承诺,如下所示。并由控制器检查并采取相应措施。

因此,当控制器需要该数据时,控制器只会执行以下操作:

所以问题是:有没有更好的方法来做到这一点?对于许多控制器,这种方法会有很多重复的代码。理想情况下,控制器将直接向服务查询数据。

谢谢!

0 投票
1 回答
424 浏览

javascript - 第二个角度 $http 请求未到达目的地

我正在建立一个类似 oauth 的流程,在该流程中,提出实际请求会被推迟,直到一些初步协商完成。

初步协商有效,但是当我尝试请求所需资源时,我得到以下行为:

  • django 服务器为协商中的每个步骤记录一个 POST 请求。
  • 角度客户端为协商中的每个步骤记录一个 OPTIONS 和一个 POST 请求。

到目前为止,一切都很好。

接下来,我收到资源的 OPTIONS 请求。这个请求在浏览器中停留在等待状态,而 $http 的请求函数执行error回调,状态为 0。

我从角度收到一条错误消息:加载资源失败。

这是我传递给 $http 的请求对象:

我删除了所有标准标题,因为担心它们可能会干扰我的签名:

django 服务器不记录此请求。

任何指针将不胜感激。

0 投票
1 回答
377 浏览

testing - 在rails中测试角度服务

我正在尝试使用 jasmine 测试我的服务,并且我一直保持入门和“未知提供者:AuthServiceProvider <- 第 2683 行的 angular/angular.js 中的 AuthService”

我的服务定义:

和我的测试:

我的茉莉花配置文件是:

这似乎配置正确,因为我可以很好地测试我的控制器,所以我不确定它为什么不能识别我的服务。