问题标签 [angularjs-service]

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 投票
4 回答
2315 浏览

arrays - 无法让数组的简单推送/拼接工作 - AngularJS

请查看以下 Plunker 项目。

我想保留多个控制器可以访问的服务中的项目列表。在此示例中,当您选择姓氏时,它将出现在列表中。但是,如果您设置第二个名称,则列表将被清除。我只是无法弄清楚 $scope.$watch 中的逻辑

用户还应该能够选择“请选择”选项以从列表中删除名称。然后,您应该会看到选择了姓氏的所有项目的列表。如图所示,下面的列表应为:

  • 马特·迪夫
  • 汤姆坎蒂

http://plnkr.co/edit/pbeLvR?p=preview

我还在看这个我只需要从我的代码中抽象出来,以防我在那里做错了什么。

在此处输入图像描述

0 投票
2 回答
1804 浏览

data-binding - 单页应用程序、永久链接和 ngView?

这是我当前的设置,每一列都由一个控制器表示:

此外,每一列都有一些信息(一个或多个变量和对象),在修改时需要将其传播到其邻居。

目前,我通过使用工厂并将其注入相关控制器来共享这些变量。

现在我想永久链接变量值,例如:

这也应该允许我移除我的工厂。

实现此设置的最佳方法是什么,例如:ngView答案是什么?

0 投票
3 回答
31551 浏览

javascript - AngularJS:如何将值从控制器传递到服务方法?

我有一个依赖于TransactionService. 其中一种方法是

看起来TransactionService

如您所见,该方法getForMonthAndYear取决于两个参数monthyear,它们现在被硬编码为params: {month: 5, year: 2013}. 如何从我的控制器传递这些数据?

我尝试注入rootScopeTransactionService但这没有帮助(这意味着我可能不知道如何使用它)。

Angular ngResource文档也不推荐任何方式来执行此操作。

有人可以在这里指导吗?

更新
我的控制器看起来像

我将服务方法更改为

我看着console.log它,它说

0 投票
1 回答
1451 浏览

angularjs - Angularjs 异步回调在 $scope.$apply() 下返回未定义;

这是我的工厂代码。回调是异步的,所以我把它放在 $rootScope.safeApply() 下。然后我在我的控制器中调用console.log(authService.authUser),但是当用户登录时它仍然返回未定义。但是如果用户没有登录并且会在控制台中显示“未登录”,它会找到。任何想法?

更新

在控制器中

更新 2

现在一切正常,我可以监控用户登录状态。但是还是有问题。检查下面的代码

0 投票
1 回答
742 浏览

angularjs - 修改多个 AngularJS 指令之间的共享变量

我创建了这个jsfiddle:

http://jsfiddle.net/noahgoodrich/CDwfL/1/

我创建了一组指令来管理和操作导航选项卡。出于某种原因,当我尝试关闭选项卡时,它最初会删除适当的数组元素,但随后该元素被替换为空元素。打开选项卡似乎按预期工作。

谁能提供有关我如何错误使用的见解navTabsService?或者是和指令link()中的功能有关的东西?navTabOpennavTabClose

0 投票
1 回答
706 浏览

angularjs - 控制器调用时需要工厂方法

我正在使用 angularJS 和 requireJS 种子,您可以在此处下载:LINK

在那个种子中,只有被调用的控制器下载相关的控制器,然后触发。我一直在尝试从我的控制器调用工厂(没有运气),而且我希望服务/工厂仅在已调用相关工厂时下载相关工厂。

我试图在工厂方法中要求一个函数(很像控制器),但它不起作用。

这是我离开的地方:Plunkr 链接

0 投票
1 回答
2842 浏览

unit-testing - 使用依赖项测试 AngularJS 服务

我在 AngularJS 中测试一个简单的服务时遇到了一些问题,该服务依赖于另一个服务。

该服务看起来有点像这样:

一开始我只是尝试使用 window.location.pathname 而不是创建服务,但它似乎是能够模拟它的错误方法。因此,我创建了 urlService,它基本上是窗口对象的简单包装器。

然后我的 filtersServiceTest 看起来像这样:

但这似乎不起作用。在实际运行之前,我不能重载 urlServiceMock。我可以更改“ beforeEach”每个,以便 getPathName 返回“test”,但是我将无法测试 url 不等于 test 的场景。

0 投票
2 回答
25872 浏览

angularjs - 启动新控制器时停止 $timeout

我每 2 秒轮询一次我的数据,以使它们在页面上保持更新。我的问题是当我访问另一个页面时,超时保持有效。访问新页面时如何取消超时?

//编辑我找到了一个解决方案,但我不确定它是否是一个好的解决方案。当我将超时保存到 $rootScope 时,我可以在所有其他控制器中取消它。

0 投票
2 回答
439 浏览

javascript - 在控制器和指令之间传递服务

我有一个单一的服务定义如下:

然后将该服务注入到多个控制器中,根据各种指令(其中一些具有隔离范围)。只有其中一个(截至目前)实际执行了获取(和结果集)操作,但用户可以通过点击交互重复执行获取操作。

其他控制器绑定如下:

或者

在这两种情况下,当服务中的值更改时,变量都不会自动更新。

$watch像这样设置:

也永远不会触发(在这两种情况下)。

资源回调中的两行注释:

mySource 那时被实例化为{}. 这并没有解决问题。

是以前尝试并重用同一个对象的尝试。

我发现解决此限制的一种方法是像这样设置 $watch :

但是,我发现这令人担忧,因为我不希望此功能在后台持续运行。(这是如何工作的?该功能多久运行一次?$digest触发多少次迭代?该解决方案的效率如何?)

我怎样才能解决这个问题?如果愿意,我如何“通过引用”绑定到服务变量?

可能有更好的方法吗?我尝试过事件,但是由于其中一些元素是同级元素,这会导致链过于复杂,其中一个孩子可能会$emit向上让一个联合父级的侦听器捕获一个事件并$broadcast退出。

还有哪些其他方法?

0 投票
1 回答
300 浏览

angularjs - 回收AngularJS函数

我对 AngularJS 很陌生,但想知道如何在控制器范围之外创建常用功能。

例如,我经常需要调用一个函数来启动一个“加载”微调器(用于 RESTful 调用等)。我尝试添加一个 showLoadingModal() 函数作为服务,但这些似乎只适用于从我看到的内容中检索数据。我是否必须将此功能添加到我的所有控制器,或者您可以以某种方式创建应用程序级功能?