问题标签 [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 投票
1 回答
33062 浏览

javascript - AngularJS 中的视图未更新

在事件回调中更新模型时,更新模型属性对视图没有影响,有什么想法可以解决这个问题吗?

这是我的服务:

publish()功能是在控制器中动态添加的。

控制器:

看法:

所以问题是单击按钮会正确更新视图,但是当我从 Channel 收到消息时,什么都没有发生,甚至add()调用了该函数

0 投票
21 回答
222054 浏览

angularjs - AngularJS:如何观察服务变量?

我有一个服务,说:

我想foo用来控制一个以 HTML 呈现的列表:

为了让控制器检测何时aService.foo更新,我拼凑了这个模式,我将 aService 添加到控制器$scope,然后使用$scope.$watch()

这感觉很牵强,我一直在每个使用服务变量的控制器中重复它。有没有更好的方法来完成观察共享变量?

0 投票
9 回答
342333 浏览

angularjs - angular.service 与 angular.factory

我见过angular.factory()angular.service()都用于声明服务;但是,我在官方文档中找不到任何地方。 angular.service

这两种方法有什么区别?
哪个应该用于什么(假设他们做不同的事情)?

0 投票
4 回答
69432 浏览

angularjs - 将当前范围传递给 AngularJS 服务

将“当前”传递$scope给 AngularJS 服务是否正确?

我的情况是,我有一个 $service 知道它只被一个控制器使用,并且我想在 $service 方法本身中引用控制器的范围。

这在哲学上是正确的吗?

或者我最好将事件广播到 $rootScope 然后让我的控制器监听它们?

0 投票
2 回答
764 浏览

javascript - Angular 控制器和服务 - 成功和错误回调

我正在为现有的 Web 应用程序在 Angular 中构建一个服务层。将 $http 请求和数据按摩转移到 Angular 自定义服务中。我了解服务的依赖注入部分,但我正在努力解决成功/错误并将其传递回控制器。

我看到有些人使用 $q 的承诺。如果您对每个服务调用进行单个 REST API 调用,是否有更简单的“then()”语法?注意:后端是非标准的 REST,所以 $resource 策略对我不起作用。我无法说出处理来自服务的承诺/回调的最新推荐方式。如果您只关心成功条件,那么回调似乎很简单。最近有没有一个很好的示例应用程序可以很好地展示服务的这一方面?或文章?

0 投票
4 回答
62782 浏览

javascript - 在应用程序配置中的自定义提供程序中使用 $http,angular.js

主要问题 - 有可能吗?我试过没有运气..

主应用程序.js

提供者本身

我有这样的错误:

有任何想法吗?

谢谢!

0 投票
1 回答
1345 浏览

javascript - AngularJS Promise - 如果数据仍在加载,则在离开页面时出错

我有一个 Angular 服务,它使用 $q 创建一个返回到 Angular 控制器层的承诺。在该服务内部,它对数据发出异步 $http.get 请求。

当用户切换到我们 Intranet 的另一个区域时,他们正在重新加载一个新页面。该导航操作会导致 Promise 失败(如果您不等待数据异步加载) 我们的应用程序中的 Promise 失败会显示一个自定义错误消息对话框。

处理这个问题的最佳方法是什么?这是一个已知的问题?我们不希望用户在离开页面时看到错误消息。这是因为在离开页面时 XMLHttpRequests 在幕后被取消了吗?

控制器代码:

服务代码:

0 投票
1 回答
5480 浏览

javascript - 通过 angularjs 中的服务编译指令

我正在尝试通过角度服务编译指令,但不幸的是它不起作用。这个想法是在弹出窗口中显示错误。

我修改了 $exceptionHandler服务:

弹出服务如下所示:

而且我认为硬编码$compile服务不是一个好主意(但我不知道如何以角度实现这一点):

弹出指令

可能还有其他方法可以做到这一点吗?谢谢。

0 投票
1 回答
82 浏览

http - $http 内的变量不反映块外的变化

我正在用 Angular 编写一个 Web 应用程序,这段代码旨在从服务器获取测试 XML 数据作为文本。我正在使用 Angular 的 $http 服务从服务器发送 GET 请求。变量 'xmlData' 在 $http 块内被更改,但在该块之外,它的值仍然是默认值。这是代码:

那么这只是一个愚蠢的范围问题吗?还是我错误地使用了 Angular 的 $http 服务?谢谢!

0 投票
2 回答
2037 浏览

angularjs - 仅对页面上的某些锚标记禁用自动滚动

我创建了一个 AngularJS 服务,它动态地将一个 div 插入到 DOM 中,其中包含来自模板的内容和一个处理模板中的绑定和指令的自定义控制器。名为 的服务myService允许您传入 thetemplateUrlcontrollerNameas 选项。下面是简化的代码:

我在 DOM 上有一个单独的控制器来处理ng-click几个锚标记:

我没有使用 a$routeProvider并且锚标签上没有 href 和 id 属性。点击函数调用我的自定义服务来呈现 div:

在 Chrome 浏览器中加载页面后,我向下滚动以显示带有 的链接,ng-click然后单击该链接,浏览器将滚动到页面顶部。我不希望页面滚动,只需在链接旁边显示 div。该位置的 URL 没有任何变化。如果我向下滚动,我会看到显示的新 div。如果我单击带有 的不同链接ng-click,则不会发生滚动(这也是我第一次单击时想要的)。如果我刷新页面,我首先单击哪个链接并不重要,并且第一次单击总是会导致浏览器滚动回视口的顶部。

如果我没有将ng-include指令放在我的新元素中,而只是在服务中对模板的 HTML 进行硬编码,则不会在第一次单击时滚动到页面顶部。

ngInclude文档说您可以指定一个可选autoscroll属性,并且它说如果未设置该属性,那么它将“禁用自动滚动”。看来情况并非如此。我尝试将自动滚动设置为“false”,但这没有帮助。

我知道我可以$anchorScrollProvider.disableAutoScrolling()禁用所有自动滚动,但我可以做些什么来禁用特定标签的自动滚动?这是我应该报告的 Angular 中的错误吗?如果是这样,在修复该错误之前,我是否可以使用解决方法?

编辑:这是一个演示问题的笨拙。