问题标签 [angular-factory]

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 回答
2610 浏览

angularjs - 可以在单个文件中编写多个 Angular 组件吗?

我即将编写一个通用的 Angular 模块,它可以在我的应用程序中用作即插即用模块。

我想要的是

我想将模块定义及其所有工厂、指令、常量放在一个 js 文件中,例如:

为什么,因为

每当开发人员想要使用我的模块时,他/她只需要调用一个 js 文件,只需将我的模块注入他们的模块中。

我的问题是什么

我已经阅读了John papa 的 Angular 1 good practice style guide,他告诉我在文件中定义单个组件是件好事,但在这里我做的正好相反,我该怎么办?

0 投票
3 回答
81 浏览

angularjs - 角工厂

有人可以告诉我下面的代码工厂部分有什么问题吗?我收到第三个控制台日志的错误消息。提前致谢。

0 投票
2 回答
489 浏览

jquery - Angular with Jquery - 如何将 jQuery 包含到工厂中并在多个控制器之间使用/共享该工厂?

我有一个更长的 jQuery 函数用于图片库滑块。我有大约 5 个指令(全部使用带有不同图片的相同滑块)。因为我不想将相同的 jQuery 代码复制粘贴到所有 5 个控制器中,所以我使用了工厂。我将 jQuery 代码放入工厂,然后在每个控制器中调用工厂。它不工作,但我不明白为什么。有谁知道吗?谢谢!编辑: Jquery 包含在角度和作品中!问题不在于 jQuery 本身,而在于工厂。如果我在所有控制器中一遍又一遍地使用相同的 jQuery 代码,它就可以工作。如果我把它放在工厂里,它就不能工作,并且可以把它放在控制器里。工厂:

第一条指令:

索引.html ...

...

0 投票
3 回答
46 浏览

angularjs - 如何在整个项目中使用 Angular 工厂数据

我有一个 Angular js factory。成功登录后,我将用户信息存储在其中。现在我有多个controllers我需要这个用户信息所以我需要inject这个工厂到每个controller. 有没有办法factory在整个项目中访问这些数据而无需注入每个控制器?

我们可以直接inject把它放进去module吗?

0 投票
1 回答
40 浏览

api - 我可以在 angular2 应用程序中使用基于 angularjs 的(angular-footballdata-api-factory)吗?

我有一个基于 angularjs 的api-factory 我想在 angular2 应用程序中使用它。是否可以使用它,如果可以,那么如何使用。

0 投票
0 回答
554 浏览

angularjs - 使用工厂解析服务中的 REST API 响应

我已经使用 Angular.js 有一段时间了,但我偶然发现了一段代码,这是一位以前的开发人员在我正在从事的项目中编写的,我想知道它的用法是否正确,或者我们是否应该将调用重构为任何内容最好的做法是。

该应用程序非常简单:它是一个 REST API 使用者,它对来自 API 的一些资源提供基本的 CRUD 操作。问题是:API 不是严格的 REST;我的意思是,并非所有资源都可以作为独立对象获取并由应用程序直接使用,而是一些响应在其中包含嵌套对象,并且需要一些响应解析逻辑来适应应用程序使用的模型。端点可能返回的一个非常简化的示例可能是:

因此,我遇到的代码使用创建自定义承诺的端点,如下所示:

在这里,产品“对象”实际上是由以下工厂的链创建的:

通过创建自定义承诺$q.defer();是必要的,因为我们需要将 API 的响应转换为前端可以理解和使用的对象。让我有点困惑的是工厂内部的 JSON 解析逻辑封装,该工厂在$http调用成功回调时被实例化。

该解决方案对我来说似乎很简洁,而且效果很好,但是在服务中实例化工厂有些东西对我来说并不点击。

0 投票
0 回答
335 浏览

javascript - angularJs中控制器和服务之间的数据绑定

我想知道执行以下操作的正确方法,我有一个服务,一个工厂和一个控制器。

该服务有一个默认selectedTable启动的属性,null它用于存储选定的表,以便在工厂和控制器中使用;该服务还具有touches在工厂和控制器中定期更新的属性,该服务如下所示:

工厂通过设置变量来使用服务,var data = tablesService.data并有一个select修改data.selectedTableand值的方法data.touches

控制器查看每个onClick事件的表列表,当它找到单击的表时调用它的select()方法,即工厂中的方法,如果单击的表是 selectedTable,它会更改touches变量,因此当select()调用它的方法时,selectedTablegetnull为新值。

问题是更改$scope.touches不会更新服务中的变量,反之亦然,这也发生在 selectedTable 上,我尝试$watch在两者上都使用$scope.touches$scope.tablesData.touches但是$digest()每次更改时该方法都不会启动,$scope.touches所以我必须调用$apply()which看起来很糟糕,并不能一直解决问题。

我的观察者看起来像这样:

阅读这篇文章http://kirkbushell.me/when-to-use-directives-controllers-or-services-in-angular/我发现我可以通过 $rootScope.$broadcast() 向应用程序广播事件,但我不确定如何实现它,也许这不是解决问题的最佳方法。

0 投票
1 回答
1835 浏览

javascript - 如何从 Angular 中的 $q.defer().promise 返回集合?

角 v.1.6.1

我正在尝试使用 $q.defer().promise 返回一个集合,但我只得到一条记录,而不是从我的服务返回的两条记录。

该模型:

服务

视图方法

在视图内部,getUser 调用功能与预期相同,但 getUsers 仅从服务接收集合中的第一项。我已经验证 response.data 确实包含整个对象集合,并且这些对象被推送到 users 数组中。

即使调用 defer.resolve(response.data) 也只会发送集合中的第一项。

任何帮助表示赞赏!

0 投票
2 回答
503 浏览

angularjs - 为什么我们在 Angularjs 中使用工厂/服务进行 ajax 调用?

我被告知我们使用工厂/服务来消除重复编码。这是代码的一部分,它工作正常。

我的问题是 1. 当我们必须处理控制器内部的承诺时,为什么要使用服务/工厂来进行这样的 ajax 调用?我的意思是,我必须在这里的两个控制器中进行相同的 .then 和 .catch 调用。它的效率在哪里?有没有更好的方法来做到这一点?还是我做错了?是否可以在工厂内部处理这些承诺并将 response.data 返回给不同的控制器?

0 投票
1 回答
46 浏览

angularjs - ReST调用的angularjs工厂错误

我是 AngularJs 的新手,我正在尝试用 ngResource 编写一个工厂来进行 Rest 调用

这是我的代码

工厂

控制器 :

并在 HTML

我正在尝试返回工厂,但它仍然说“提供者'myFactory'必须从 $get 工厂方法返回一个值。”

请帮帮我。我会很感激