问题标签 [angularjs-resource]

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 投票
2 回答
566 浏览

node.js - 为什么在 $save() 期间它会在 mongoDB 中生成一个带有字符串 _id 的新条目?

MEAN堆栈新手在这里。大概是问了个傻问题吧。

作为练习,我一直在尝试实现一个原型 SPA,它在屏幕上显示一系列任务卡(有点像 Trello)。

目前,每张卡有 4 个字段:

  • _id:对象ID
  • 内容:字符串
  • 工作流程:字符串
  • 状态:字符串

我使用MongoDB作为数据库(使用 Robomongo 输入了一些测试数据),我的机器上安装了node.js以及Express.js

我的server.js文件如下所示:

我在服务器端的routes/cards.js如下所示:

当我在 AngularJS 控制器中从数据库中获取卡片时,一切正常。所有卡片都正确显示在屏幕上。这是获取卡片的代码:

每张卡片上都有一些按钮,可用于将卡片的状态更改为工作流中可用的下一个状态(由当前状态可用操作定义)。

单击按钮时,卡 ID 和下一个状态将传递给控制器​​中的函数:

这是控制器中的 processCard 函数:

发生的事情是,当我单击按钮时,不是更改当前卡的状态,而是创建了一个带有 String 类型的 id 字段的新卡。这是服务器的输出:

知道为什么会这样吗?为什么它在服务器上调用addCard函数而不是调用updateCard函数?

0 投票
2 回答
9818 浏览

angularjs - AngularJS 资源 - PUT 方法没有获取 id

我有一个为我的 Article 模型返回 $resource 的工厂:

GETPOST并且DELETE运行良好,但不是更新 (PUT)。这是我使用的代码:

它提出了这个要求:

代替:

知道为什么在进行更新时没有填充 :articleId 参数吗?谢谢!

0 投票
3 回答
15684 浏览

http - Angular:自定义标头被 $http 和 $resource 忽略。为什么?

我正在尝试访问我无法控制的 REST 服务。第一个问题是该服务不包含 Access-Control-Allow-Origin 标头,如果我理解正确,这个问题会立即将我限制为 JSONP。

此外,默认情况下,此服务发送 XML 而不是 JSON,尽管它能够发送 JSON。我认为它应该响应我的 Accept 标头,负责服务的人员说它会查看我的 Content-Type。这意味着我需要做一个 POST 而不是 GET(尽管当我只是获取一些静态数据时 get 更有意义,对吧?)。

像我一样固执,我首先尝试我的 Accept 标头。由于 Angular 只接受 JSON,我希望它Accept: application/json默认使用标头,但它没有,它忽略了我手动设置它的尝试:

我在实际资源中再次这样做:

但是,请求标头仍然包含Accept: */*.

我的问题是:为什么?为什么 Angular 会忽略我的标题?以及如何让它使用正确的标题呢?

还有:有没有办法在 POST 中使用 JSONP?

编辑:最初我使用 Angular 1.0.7,但我只是用 1.2.3 尝试过,得到了相同的结果。标题被忽略,但每个人都声称这是这样做的方法。

我还尝试直接使用 $http 而不是使用 $resource 进行操作,结果相同。

编辑 2:这是一个JSFiddle。它是匿名的,不使用我的真实服务器,但使用 Firebug/开发人员工具,您可以验证它是否Accept: */*在两个调用中都发送,尽管我多次尝试设置application/json标头。这是我真正的问题。在我的真实服务器上,我得到了一个 XML 结果,尽管我的真实服务器能够发送 JSON。

(目前真实服务器是否支持jsonp不太重要。这个虚拟服务器显然不支持,但没关系。我只关心标题。)

编辑3:我尝试了以下建议的两种解决方案:

我已经分别尝试了这两种说法。在控制器中,然后在 http 调用本身之前的服务中。还是不行。

有人可以给我一个 JsFiddle 吗?

编辑 4:我注意到当我使用 GET 而不是 JSONP 时,Accept 标头是正确的。但随后响应被拒绝,因为它没有正确的标题。

JSONP 调用应该有什么样的标头?因为 JSONP 调用中有更多的标头,但没有将其标识为 JSONP。服务器是否必须有明确的 JSONP 支持才能工作?我突然意识到我对 jsonp 的了解还不够。

0 投票
2 回答
2309 浏览

angularjs - 在 AngularJS 中组合资源

我有一个为我提供员工和部门的 RESTful API。在我的 AngularJS 应用程序中,我需要知道员工和员工所属的部门。我为此定义了两个工厂服务:

在控制器中,我调用:

接下来,我想调用:

但是$scope.employee是一个promise对象,所以$scope.employee.departmentIds只有在第一个请求完成时才会知道。

我可以这样解决它:

问题是我在多个控制器中需要此信息,并且不想在每个控制器中重复此代码。所以我的问题是:有没有办法将这两种资源结合起来作为一种服务,既提供员工数据又提供该员工所属部门的数据?

0 投票
2 回答
766 浏览

javascript - AngularJS: How to bind a model specified in the view (ng-bind) to a $resource available through an API?

I'm trying to connect (in Angular, at the client) the same database object through its html view, to its equivalent instance through a json API.

I have a working api and $resource, and have a working view, I just can't figure out how to create the binding, so that updates to the view update the Angular model / $resource.

Specifically, I have an html view populated server side that contains an ngBind attribute:

There are several of these on the page with unique ids.For the purpose of the example, if it's easier to think of this as a form text field, then ignore 'contenteditable', an I'll deal with that part separately.

The format of that attribute is flexible, that's just how it is currently (i.e. post.1.text could be post_1_text, or split up entirely as needed.)

The resource factory looks like this (coffee script, but answers in js equally gratefully received!:

which successfully populates a posts collection (not needed for this example, but shows the API is working).

So, what should ng-bind look like, and how to bind the controller to get updates to the view written back to the API?

(I know I could just use ng_repeat: "post in posts", but just go with me that I really do want to do this. "It's complicated" :-)

Thanks!

Edit: Here's a jsfiddle that shows roughly what I'm trying to achieve:

http://jsfiddle.net/2QfVW/5/

...but i'd like the id to bind to the object key 'id' rather than to the index of the object in the array.

0 投票
1 回答
1542 浏览

rest - 将 AngularJS 应用程序与 SoftwareAG webMethods 集成服务器集成

我一直在尝试在后端设置一个带有 webMethods 集成服务器的示例 AngularJS 应用程序。使用 $resource,我可以轻松提取普通 JSON 文件并操作文件中的数据。但是,目标是我想在 webMethods Designer 中创建服务并使用 $resource 从 AngularJS 调用它们以在我的应用程序中显示数据。问题是从 AngularJS 我无法从我在 Designer 中创建的服务中提取我需要的数据。在 Designer 中,我可以使用(在 WMPublic 中)documentToJSONString,并输出如下内容:

但我无法提取数据,因为这不是纯 JSON 字符串。有谁知道如何 (1) 使用 AnularJS 提取 JSON 字符串输出数据或 (2) 从 Designer 输出 JSON 文档?我正在调用 REST 服务;大意的东西

来自我在 AngularJS 中的 services.js 文件。

这是我的 services.js 文件:

/* 服务 */

然后,在我的应用程序中,我想使用 ng-repeat 来调用 {{order.id}}、{{order.name}} 等。有没有人擅长 webMethods 和 Angular 或以前做过这个?

0 投票
1 回答
554 浏览

javascript - 如何等待AngularJS中的状态变化?

使用 Angular 1.2.3,我有这样的服务:

在我的控制器中,我想保存一个项目,所以我这样做了

POST 处理程序生成可能需要一段时间的图像。我知道 $save 调用会立即返回,因为调用是异步的。一旦 POST 处理程序完成,它就会返回一个带有 booleancalculationDone = true 的 Item,这反映在 $scope 中。

现在我想显示生成的图像。我正在使用上面的html。我已经知道生成图像的 URL,但我不能把它放在 ng-src 中,因为它还没有解析。

一旦项目的状态发生变化,我如何更新或重新应用 ng-src?

我需要使用承诺吗?还是$手表?

0 投票
0 回答
443 浏览

angularjs - angular js:资源正在返回数组但期望字符串

我有一个 Rest 服务,它返回 html 片段的内容,如下所示。

我正在尝试使用 $resource 来获取该服务的响应;令人惊讶的是它以数组的形式返回。当我尝试“isArray:false”时,我仍然看到同样的问题。即使我尝试了“查询”,但它没有用。以下是我使用的 $resource 方法。

以下是我尝试测试的不同方法。

请帮忙。

0 投票
0 回答
640 浏览

node.js - 如何在 AngularJS 中使用 $http 或 $resource 发送带有 JSON 数据的 POST 请求?

我想使用postData向服务器发送请求。(JSON)

我尝试了以下$http请求,

var jsonData = {"id": 1, "name": "xxx", "designation": "developer", "department": "IT"};

但我得到“由于$http 和 $resource 请求的输入错误结束,没有内容映射到对象。

附加信息: * My client side application is running on Express serve with node.js* 任何人都可以帮助我如何在上述任何方法中实现这一点吗?

0 投票
1 回答
1213 浏览

angularjs - 范围属性在页面刷新之前不会更新

我在工厂中使用资源来验证用户。我在我的控制器中设置并在我的视图中$scope.user = User.user打印出来。user.username这一切都像冠军一样工作,只是在刷新页面之前我看不到用户名。

这是我的代码简化:

HTML

控制器

工厂