问题标签 [angularjs-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 回答
758 浏览

javascript - AngularJS:持久实体(JSON 对象)

我主要是 C# 和 Java 开发人员。JavaScript 和 AngularJS 的新手。

我正在开发一个网络应用程序,我想以下列方式构建应用程序:

最顶层:视图和控制器(JavaScript)

下一层:一个模型层,它从 web 服务中获取信息,(持久地)存储它,以便控制器可以随时访问它。(JavaScript)

WebService : 返回 JSON 对象 (PHP)

数据库(MySQL)

我的问题是关于第二层。有没有办法用角度工厂/服务(或其他任何角度)来实现我想要的,而不将信息存储在全局变量中?

例如,我想要一个员工工厂/服务,我可以通过传递员工 ID 从控制器初始化。这将调用相应的 web 服务端点,然后存储 web 服务返回的 JSON 对象。然后我希望能够将此员工工厂/服务注入到我想要的任何控制器中,并访问员工姓名、员工年龄等数据。

任何帮助将不胜感激。

如果您的建议不需要伪造的 JavaScript 类,我将不胜感激。当我试图将“函数视为对象”时,我会感到头疼。

谢谢你。

0 投票
0 回答
44 浏览

javascript - 将大量信息与控制器(AngularJS)隔离到工厂中

我对 Angular 有点陌生,所以我不太确定在编写具有此类功能的应用程序时的标准是什么。

我有一些需要在控制器之间共享的功能和内容,所以我将它们隔离到一个工厂中,这样控制器就可以彼此独立地运行。

但后来我意识到,如果不是所有这些少数控制器的逻辑和内容,大部分(如果不是全部的话)都是需要共享的内容的一部分。现在,我最初创建的用于处理逻辑的控制器(在意识到我需要隔离它们的信息之前)是空的。

我转移的一些函数只是将传入的值保存到不同的变量中,这些变量可能是特定于控制器的,不会影响依赖注入,但由于它们在工厂处理大量信息,我认为这样会更容易只需将它们保留在那里,而不是将一些小函数和变量移回控制器。所以现在我有两个空控制器,我不妨删除它们。

我的问题:在这种情况下,您需要共享信息,否则这些信息将被隔离到自己的控制器中,最好简单地拥有一个与某些控制器进行最少对话以共享数据的工厂,但拥有所有的逻辑和工厂内部的数据本身?或者最好指定控制器来保存特定逻辑的一小部分,尽管它无论如何都从工厂获取大部分数据。

即使手头的问题不需要它们,使用控制器来备份我的工厂是否更好?

0 投票
1 回答
1169 浏览

angularjs - 工厂中的AngularJS $rootScope - 重新加载数据

我有一个工厂调用 $resource。完全刷新应用程序后,这将按计划工作。但它不会在整个导航应用程序过程中再次调用资源。理想情况下,我希望每次从控制器调用工厂时调用 $resource。

这是我的控制器:

0 投票
0 回答
225 浏览

angularjs - 获取:未定义不是从 web-api 获取集合的功能

我有一个在 Get上返回的web api 。IHttpActionResult(myCollection)

我的 Angular JS控制器有一个功能:

我在 Angular JS中的服务如下:

我的 serviceHelperSvc 如下:

当我尝试运行它时,我得到 undefined is not a function atmySvc.getCollection().then(function(myCollection)

之前then(function(myCollection)

当我尝试使用延迟承诺方法时,我在同一个地方得到一个异常说$promise is not defined

0 投票
1 回答
43 浏览

javascript - AngularJS工厂信息不一致

我有一个包含对象数组的工厂。每个对象都包含有关员工的信息,如下所示:

数据工厂

我正在尝试根据使用应用程序的人选择的用户在名为 CurrentUser 的工厂中设置一个值。

当前用户

HTML

但是,有了这个,没有名称值。选择名称后不会显示“john smith”。

当我将其保留为 CurrentUser.user 时,它不会显示用户的整个对象,而是显示 indexVal。

如何让它显示名称?

0 投票
1 回答
50 浏览

angularjs - Failed to instantiate module in angular js

UserServices.js

UserCtrl.js

0 投票
2 回答
1317 浏览

javascript - AngularJS:$http成功回调中的范围问题

我正在使用 PHP 将数据获取到我的工厂,这在控制器内的成功回调函数中正确显示。但是,即使在将返回的数据分配给 $scope.customers 之后,如果我在回调之后执行 console.log($scope.customers),它也不存在,并且我的视图的 [ng-repeat] 也没有拾取它。

如果我将返回的数据分配给我的 $scope 对象,知道为什么我的数据范围会被限制在成功回调内吗?

0 投票
2 回答
867 浏览

javascript - 将输入字段值传递给 angularjs $resource undefined 并且错误显示未知范围提供程序

==================================================== ==========================

更新 1 固定代码产生新的错误

线上

下面是新代码

我想知道我哪里弄错了?

谢谢

0 投票
0 回答
85 浏览

angularjs - AngularJS:工厂应该返回定义对象还是函数?

AngularJs 官方的 Directive 开发人员指南 ( https://docs.angularjs.org/guide/directive ) 在创建指令部分中建议:

最佳实践:更喜欢使用定义对象而不是返回函数。

我无法与此声明联系起来。这样做有什么好处?请任何人都可以为我简化这个。

0 投票
1 回答
1167 浏览

javascript - $routeParam 不通过带有 $resource factory 的 url 传递变量

代码

数据(当 myvar=1066 时来自http://123.com/processor-url.php )

我使用这段代码 + 假设是 myvar=1066 结果的数据运行。会有错误

在哪里

我想知道错误在哪里?正如我在控制器本身内注入 Greeter 一样。

==更新 1]===

我通过将所有 routeParam 修复为 routeParams 来更新代码。

先前的错误已解决。但是,现在错误变为

我可能以错误的方式使用 routeParams?因为我想做的是我假设 routeParams 将是 1066 的值,因为这就是“/”符号之后的值。我理解它的功能有错吗?

谢谢