问题标签 [restangular]

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

angularjs - 从 Restangular Promise 返回数据

我的工厂看起来像这样:

我已经使用了延迟,但它仍然没有返回需要执行的对象。如何解决这个问题?

0 投票
1 回答
126 浏览

angularjs - 如何确保 promise.then(func) 之前在另一个控制器中运行过?

我在控制器 A 中有一个 Restangular 函数,它需要设置一个$rootScope在控制器 B 中使用的变量。如何确保在初始化控制器 B 之前运行 Restangular 函数,或者是否有其他方法来处理这个问题?谢谢。

0 投票
1 回答
936 浏览

ruby-on-rails - Restangular PUT 未在请求中附加 id

我有一个 AngularJS 应用程序,它使用 Restangular 在 Rails 4 API 之上进行持久性。我遇到了更新无法正常工作的问题。

我的代码在routeProvider

我的控制器功能:

正在向http://mysite.com/courses提出 PUT 请求,而不是http://mysite.com/courses/id

就像我预期的那样,我似乎无法弄清楚为什么。

rails 抛出的错误是'No route matches [PUT] "/courses".

任何帮助将不胜感激。

0 投票
1 回答
149 浏览

angularjs - AngularJS:在调用 REST 和生成易于阅读的代码时保持 DRY 的想法,将端点存储在 js 对象中?

我一直在破解,目前有很多控制器正在调用我的后端服务,目前我已经将端点直接输入到控制器中,并且 URls 存储为字符串文字。

我不禁认为这是不对的,任何人都有整理代码的好主意,我应该将端点作为键值对存储在 js 对象中吗?

我目前正在使用注入到每个控制器中的restangular,这是正确的做法吗,我可以将其抽象为服务,但我将从中获得什么。

目前我有我的restangular调用,它接受2个函数,1个表示成功,1个表示失败。

有没有人有任何例子或看到做这种事情的好方法?

谢谢

0 投票
1 回答
423 浏览

javascript - 如何使用 angularjs 将 $http 请求返回的数据用于同一控制器中的另一个请求?

我正在制作一个发出 http GET 请求的函数,然后使用该响应的一部分发出另一个 http GET 请求。但是,第一个 http GET 请求返回的数据包含在很多不必要的数据中(可能是一个 promise 对象),但我只需要它的 json 组件。如何在控制器中访问我的响应的 json 数据?这是我的代码。

0 投票
1 回答
2722 浏览

angularjs - 为同域请求设置访问控制标头

我正在使用restangular来使用托管在与角度文件相同的服务器上的api。Access-Control-Allow-Origin 错误不允许对 api 的所有请求获取 Origin。我试过改变配置中的标题

并更新角度/静止角度。有没有办法使用 restangulars setdefaultheaders 方法为相同的域请求设置标头?

0 投票
1 回答
3588 浏览

javascript - 使用 Restangular 保持 CRUD DRY:指令、继承控制器或包装服务?

我对 AngularJS 比较陌生,我一直在尝试各种方法来使用 Restangular 保持我的 AngularJS CRUD 方法干燥,所以我很感谢社区的任何建议。

我有很多 API 端点,对于每个我想显示一个项目列表,允许选择每个项目(以显示该项目的详细信息)和删除,以及将项目添加到列表中。

到目前为止,我尝试过的每一种方法要么非常不干燥,要么没有正确连接到 $scope,要么有点 hacky...

包装角

将 Restangular 包装到服务中,并使用 addElementTransformer 在返回的集合上设置其他方法似乎是一种不错的方法;和方法很干净,很容易从模板中实现,并在 promise 解决时自动更新列表selectadd但是,因为该delete方法实际上是从元素范围(集合的子对象)中调用的,所以在删除后更新列表需要非常可疑地将 $scope 注入服务 - 我能想到的最好的方法如下:

(注意:我通过仅说明单个 API 端点/控制器/模板使示例更易于阅读)

应用程序/js/services.js

应用程序/js/controllers.js

应用程序/partials/companies.html

扩展基本控制器

我尝试的另一种方法是将模板连接到基本控制器中的服务,我的其他控制器继承了该服务。但是我在这里仍然有 $scope 问题,最终需要从模板中传递范围,这似乎不正确:

(编辑到只是delete方法)

应用程序/js/services.js

应用程序/js/controllers.js

应用程序/partials/companies.html

指令

我对指令有点陌生,但经过大量研究后,似乎它可能是处理这个问题的最AngularJS方法,所以我潜入了。我已经做了很多实验,但请原谅任何明显的错误;基本上问题仍然是,虽然我可以从列表中删除项目,除非我将所有变量传递给指令,否则我无法访问列表最初分配给的 $scope 上的属性,因此它不会在视图中更新。

应用程序/js/directives.js

应用程序/partials/companies.html

基本上,我可以让一切正常工作,但似乎我要么必须做很多重复的代码(这是完全错误的),要么将我的范围与我的所有调用一起发送(这似乎也非常错误),或者初始化我的服务通过传递范围(对于我的控制器来说不是最整洁的解决方案,但似乎是实现这一目标的最可维护和最不脆弱的方式。

当然,我可以删除该功能,或将其移至详细视图或复选框/批量操作功能,但我全神贯注于问题并有兴趣找出最佳解决方案 :)

抱歉,如果我遗漏了一些明显的东西!

0 投票
1 回答
3395 浏览

angularjs - 使用嵌套间谍测试对 Restangular 的服务调用

我正在测试的服务具有此功能(例如):

我只是想在 Restangular 上做一个间谍,看看它是否得到了正确的参数、端点等来使用。

所以我做了一个restangular模拟:

但我不能在模拟中的嵌套帖子上设置茉莉花间谍:

spyOn(mockRestangular.one,'post')我明白了post() method does not exist

并且函数调用也失败了

someService.doSomething(params)

因为它可以找到 post 方法。

请注意,我需要将 post 方法嵌套到 one 方法中。如果我只是把一个变成一个对象,它会因缺少one方法而失败。

猜猜我错过了一些明显的东西,但我整个早上都在思考这个问题并且完全失败了

编辑:

再加andCallThrough()上间谍,所有的事情都朝着正确的方向解决了。如果有一天有人会来看,我会更新答案。

0 投票
1 回答
1248 浏览

javascript - 如何使用 Restangular 停止错误链接请求?

我正在使用 Restangular 通过链式承诺获取数据。这是我正在做的一个简化示例:

首先,我需要获取用户的雇主,然后获取附加到该雇主的评论。我认为它工作正常,直到我从服务器收到 401 响应。

当它发生时,我将用户发送到登录屏幕。这也可以正常工作,但问题是整个链都被执行了——这将返回一个 401。

最终,我希望链在错误发生时停止。我可能可以通过抛出错误来做到这一点,但这真的是一个好的解决方案吗?我是否以错误的方式处理这个问题?

0 投票
2 回答
1254 浏览

javascript - 你可以用多个变量在 Restangular 中构建一个 URL 吗?

我正在尝试使用具有多个变量的 URL 在 Restangular 中构建资源。设置了服务器变量,所以我需要弄清楚如何做这个客户端。

这是我在 ngResource 中使用的 URL:

过去的发货订单实际上没有任何嵌套,它只是通过 URL 传递参数。

我试着像这样链接它们:

但结果是一个带有双斜杠的网址。