问题标签 [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.
angularjs - AngularJS 服务/控制器不更新角度传单指令映射
我正在尝试使用Angular-Leaflet-Directive 和来自 2 个使用 $resource 调用 Web 服务的不同 Angular 服务的数据来生成地图。这些服务返回包含纬度/经度值的 JSON 消息以填充地图上的标记。
但是,我无法获得使用服务数据的指令。
我可以看到我的服务正在更新范围,因此它们工作正常,并且如果我将值硬编码到控制器中(例如,请参见下面的“中心”),地图标记会正确呈现。我想做的和这个例子很相似
这是我的代码:
控制器:
我发现我的 2 个服务返回,范围用值更新,但这并没有传递给 angular-leaflet-directive。
关于指令的Angular 文档建议指令中的以下代码将子作用域链接到父作用域,以便它们都被更新:
但这似乎对我不起作用。但是,angular-leaflet-directive 路径示例似乎确实允许这样做(您可以添加标记、更改标记等)并且地图会实时更新。
服务返回后,我需要做什么才能使标记出现在我的地图上?
请注意,Stackoverflow 上有类似的问题,但这些问题的答案是将服务调用包含在指令中。我不想这样做,因为控制器提供的功能不仅仅是直接的服务调用,例如处理表单提交等,并且需要访问相同的数据。
rest - AngularJS REST异步调用不返回数据
我是 Angular 新手,在一个应用程序中我正在编写 Angular 服务来进行 REST API 调用。
我在做什么如下:
与$q.all(newsCall, tweetsCall).then
异步调用一样,当我调用我的服务时,我在新闻中得到空数组。
在我的控制器内部,我将其称为dataService.getNewsAndTweets()
并获取空数组,据我所知 $q 是一个异步调用,稍后将返回数据。
我该如何解决这个问题?
提前致谢。
javascript - $parse、$interpolate 和 $compile 服务有什么区别?
$parse
和服务$interpolate
有什么区别$compile
?对我来说,他们都做同样的事情:获取模板并将其编译为模板函数。
javascript - 带有两个参数的 Angular $resource 端点
我有一个使用服务来处理 $resource 的设置,如下所示:
服务
调用函数
但是,当 PUT 调用实际通过时,它会到达端点:
/api/events/123/slots/
其中 123 是合适的,@Id
但@slotId
永远不会附加。所以,我想要的是/api/events/123/slots/456
,但这永远不会发生。
javascript - AngularJS:在 $provide 时注入依赖项
我是 AngularJS 的新手。我正在尝试在 Salesforce CRM plarform 中开发单页应用程序。我想按需加载依赖项,即仅当用户单击特定链接时。我也通过使用https://github.com/matys84pl/angularjs-requirejs-lazy-controllers实现了这一点
上面的链接仅包含指令示例。我在同一个路由配置文件中添加了服务和过滤器。
我正在注册一个像上面这样的服务,它可以用作,
一切都很好,但我的疑问是,如何在上面的代码中注入 $q、$rootScope 等依赖项。
angularjs - 如何在 AngularJS 中使用 Web Worker?
我正在使用AngularJS Seed,我想查看 Web Worker 的工作实现。
我想让一个简单的 Web Worker 工作以理解它,但我遇到了功能问题。
我在services.js中有 Web Worker 代码,如下所示:
在js文件夹中,我有一个文件doWork.js,其内容是:
我的controllers.js文件是空的,看起来像这样:
我想要的是查看 Web Worker 的输出。
我使用此设置得到的错误是:
未捕获的类型错误:无法调用未定义的方法“工厂”
angularjs - 资源工厂中的AngularJS $timeout
我目前有一个角度应用程序,它在用户登录时调用服务以开始服务器调用以刷新计数,如果用户通过身份验证,则只允许服务器端返回。
当用户注销时,我试图取消该计数器,否则服务器将通过调用基于资源的函数返回 401 未经授权的错误:
问题是,即使我在 $timeout 从服务器返回 401 时调用取消后,计数器仍继续运行。控制台注销返回取消函数返回true(取消已经生效)。我尝试了几种不同的 $timeout 开头的位置都无济于事,有没有办法确保所有的 $timeout 都被取消?我不明白我在这个配置中缺少什么。
编辑
angularjs - AngularJS 服务存储 $http 结果以防止重新查询——有没有更好的方法来做到这一点?
设置:我想要一个服务,多个控制器可以查询使用 $http 提取的数据。最初的解决方案是使用这里建议的承诺。
问题:每次控制器查询服务时,服务都会返回一个 $http 承诺,从而导致多个查询一遍又一遍地从远程服务器中提取相同的数据。
解决方案:服务函数返回数据或承诺,如下所示。并由控制器检查并采取相应措施。
因此,当控制器需要该数据时,控制器只会执行以下操作:
所以问题是:有没有更好的方法来做到这一点?对于许多控制器,这种方法会有很多重复的代码。理想情况下,控制器将直接向服务查询数据。
谢谢!
javascript - 第二个角度 $http 请求未到达目的地
我正在建立一个类似 oauth 的流程,在该流程中,提出实际请求会被推迟,直到一些初步协商完成。
初步协商有效,但是当我尝试请求所需资源时,我得到以下行为:
- django 服务器为协商中的每个步骤记录一个 POST 请求。
- 角度客户端为协商中的每个步骤记录一个 OPTIONS 和一个 POST 请求。
到目前为止,一切都很好。
接下来,我收到资源的 OPTIONS 请求。这个请求在浏览器中停留在等待状态,而 $http 的请求函数执行error
回调,状态为 0。
我从角度收到一条错误消息:加载资源失败。
这是我传递给 $http 的请求对象:
我删除了所有标准标题,因为担心它们可能会干扰我的签名:
django 服务器不记录此请求。
任何指针将不胜感激。
testing - 在rails中测试角度服务
我正在尝试使用 jasmine 测试我的服务,并且我一直保持入门和“未知提供者:AuthServiceProvider <- 第 2683 行的 angular/angular.js 中的 AuthService”
我的服务定义:
和我的测试:
我的茉莉花配置文件是:
这似乎配置正确,因为我可以很好地测试我的控制器,所以我不确定它为什么不能识别我的服务。