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

php - Restler 中的 Restler 响应错误

我已经在这几天了,似乎无法让它发挥作用。我的问题是我在前端使用 Restler(版本 3)作为 API 和 Restangular,我收到以下错误:

以下是相关的代码片段,您可以看到我在做什么:

Restler 设置来设置我的 API

我将为我的 API 访问的用户类对象(现在我只是返回一个示例进行测试)

最后是我的 app.js 文件

API 正在返回以下 JSON 响应(取自 Firebug:

):

我看不到正在发生的任何会导致问题的事情。任何帮助将不胜感激!

0 投票
2 回答
7992 浏览

javascript - 如何使用服务器响应更新 Restangular 模型对象?

我的 POST 和 PUT 返回在服务器上看到的实体的当前状态。如何在服务器调用后告诉 Restangular 更新其模型对象?

以防万一——为什么?因为在保存/更新期间,服务器可能已经计算了一些字段。因为其他客户端可能已经同时更新,我想确保当前正在更新的客户端是最新的。

到目前为止,我只发现了这个:

它看起来既肮脏又普遍,我怀疑一定有更好的方法。

编辑

上面的代码只演示了两个不同的操作。我的目标不是在创建实体后向服务器发送更新,而是在客户端更新状态。与服务器同步状态,如果你愿意的话。

当我发布一个对象时:

服务器响应具有以下内容:

...然后我希望 Restangularres自动更新和重新调整对象,因此它具有 ID,可以是put()等。

现在是一个不同/互补的场景。当我放置一个 Restangular 对象时:

服务器总是回复对象的当前状态,可能是:

...所以我希望 Restangularres在这个 PUT 之后自动更新。

0 投票
2 回答
12682 浏览

javascript - 使用带有 Restangular 的完整 URL

我喜欢 AngularJS 的 Restangular 的所有功能,除了我找不到(而且它可能不支持)只将完整 URL 传递给它的方法。我意识到 .one('something','someparam') 的好处,但我的问题是我传递了各种 URL 字符串,我真的不想为了使用 Restangular 而拆分()它们。

另外,我知道 baseURL 函数;但是我传递的这些 URL 不一定来自相同的基本路径。

例如,我可能有:

我得到的只是字符串...

0 投票
3 回答
3368 浏览

angularjs - AngularJS(Restangular):做一个承诺块?需要使用它来验证令牌

我偶然发现了 Restangular 用于调用休息服务。它工作得很好,并返回了一个承诺。我需要能够拥有呼叫块。原因是在重新加载新页面时,我在技术上没有登录,但我可能在 cookie 中存储了一个令牌。我想根据休息服务验证这个令牌。问题是我需要它来阻止。

如果发生超时或者它无效,我可以将用户视为未经过身份验证。

这就是想要阻止的原因是我想使用 $location.path 将它们重定向到一个新的 URL,它不是一个有效的令牌。

这不会发生在特定的路线上,所以我不能使用阻塞的解析。从技术上讲,它发生在每条路线上 - 我使用 $on.$routeChangeStart 并检查内部变量是否已登录,如果未登录,我会检查存储的令牌。

这会在每次页面刷新时发生,但不会在应用程序内部导航时发生。

我想要获得的影响是 Gmail 的工作方式。

期待任何人对此的任何见解

谢谢

0 投票
3 回答
4601 浏览

javascript - 如何仅使用 Restangular 放置一些字段?

假设我有一个包含多个字段的资源,其中一些是只读的。或者它们可能属于我想在服务器上以不同方式处理的不同用例。

例如,我的bing资源如下所示:

我想让 Restangular 只 PUT 一些字段,执行如下请求:

不想做的是:

我怎样才能实现它?

0 投票
2 回答
63321 浏览

angularjs - 为什么我收到错误...意外请求:GET /internalapi/quotes

我在我的 Angular 应用程序中定义了以下服务:

我正在编写以下规范来测试它:

每当我运行测试时,第一个测试通过但第二个测试产生错误:

Error: Unexpected request: GET /internalapi/quotes

我究竟做错了什么?

编辑:

原来我是这样配置的Restangular...... RestangularProvider.setBaseUrl("/internalapi");但我在假装打电话给internalapi/quotes. 注意缺少“/”。一旦我添加了斜线,/internalapi/quotes一切都很好:)

0 投票
2 回答
1483 浏览

ajax - 如何配置 Restangular URL 构建的 Id 属性

,


另一个 GET 请求:

让: user: { id: '123' }

$scope.cars = $scope.user.getList('cars'); 这将触发 GET 请求:/users/ 123 /cars

其中123是从id 属性中获得的。


问题:

是否可以明确配置我的对象的id 属性,例如:被命名为username

0 投票
2 回答
1491 浏览

python - restangular/django:“类型错误:对象#没有方法'push'”(没有调用RestangularProvider.setResponseExtractor?)

更新 2

我从 0.6.1 升级到 1.0.9 解决了这个问题。似乎认为在 0.8.7 和 0.8.8 版本中有两个修复程序需要完成这项工作。在 0.8.7 中,它确实调用了 reourceExtractor,但仍然会出现以下跟踪错误:

错误:$digest 已在Object.$get.Scope的 beginPhase ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:8334:15 ) 处的 Error () 处进行。 $apply ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:8136:11 ) 在 HTMLDivElement.ngEventDirectives.(匿名函数) ( http://ajax.googleapis.com /ajax/libs/angularjs/1.0.7/angular.js:12986:17)在 event.preventDefault (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:1992 : 10 ) Array.forEach (native) at forEach ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:130:11 ) at eventHandler (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:1991:5)在 HTMLDivElement.forEach.bind.events.(匿名函数)(http://ajax.googleapis. com/ajax/libs/angularjs/1.0.7/angular.js:2067:15 ) 在 event.preventDefault ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:1992 :10 )

然而 0.8.8 似乎已经清除了所有这些。我将继续四处寻找,看看是否还有其他奇怪之处。

我不知道我是怎么得到这样一个旧版本的restangular的。


更新:

所以通过javascript追踪

被称为成功变量是来自的匿名函数

其中 responseExtractor 是我在我的应用程序中设置的功能。所以这一切看起来不错???在

进行 REST 调用并且数据变量包含正确的 REST 响应。它在同一功能中分崩离析:

发生错误@value.push(new Resource(item)); 其中 value 本质上是 JSON 休息响应。

我读到角度资源要求您定义其余资源和响应,并且定义的一部分是定义数组部分。我不知道这是否是根本原因 - 但我认为restangular会为我解决这个问题。还有更多的挖掘工作。任何帮助 - 仍然 - 赞赏。

谢谢


所以我正在同时学习 Angular 和 Django。我已经使用 Django 休息服务来构建一个服务来返回一些简单的 JSON。那部分工作正常,但我似乎无法将它与 /restangular 连接起来。REST 调用正在发生,并且 json 被返回 - 但 responseExtractor 似乎没有被调用。我一直在坐立不安,似乎无法将手指放在它上面。

先感谢您

添加调用堆栈:

TypeError: Object # has no method 'push' at U ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:10:257 ) 在新资源 ( http:// /ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular-resource.js:350:9)在http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular- resource.js:407:32 at m ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:6:494 ) at http://ajax.googleapis.com /ajax/libs/angularjs/1.0.7/angular-resource.js:406:19 在 h ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:78 :33 ) 在http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:78:266 在 Object.e.$eval ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:88:347 ) 在 Object.e.$digest ( http:// ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js:86:198 ) 在 Object.e.$apply ( http://ajax.googleapis.com/ajax/libs/angularjs/ 1.0.7/angular.min.js:88:506 )

非最小堆栈

TypeError:对象#在新资源(http ://ajax .googleapis.com/ajax/libs/angularjs/1.0.7/angular-resource.js:350:9)在 angular.module.factory.Resource.(匿名函数)(http://ajax.googleapis.com/ajax /libs/angularjs/1.0.7/angular-resource.js:407:32)在 forEach (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:137:20)在 angular.module.factory.Resource.(匿名函数) ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular-resource.js:406:19 ) 在 deferred.promise.then .wrappedCallback (http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:6846:59)在 ref.then (http://ajax.googleapis.com/ajax/libs/angularjs/1.0 .7/angular.js:6883:26 ) 在 Object.$get.Scope.$eval ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:8057:28 )在 Object.$get.Scope.$digest ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:7922:25 ) 在 Object.$get.Scope.$apply ( http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js:8143:24

查看代码,responseExtractor 方法存储在我在堆栈中看不到的变量“a”中。

JSON

Javascript(编辑:修复了 sza 提到的剪切粘贴错误)

0 投票
1 回答
2763 浏览

django-rest-framework - Restangular 使用 HTTP OPTIONS 而不是 GET

我有一个 Django 应用程序,它使用 Django-rest-framework 公开数据。我可以像这样以 json 格式访问我的对象:

或者

我现在正在尝试使用 AngularJS 来访问数据。我选择了restangular,这看起来很简单。我已经这样配置了restangular:

然后在我的控制器中:

问题是在我的 Django 日志中,我总是看到一个 HTTP OPTIONS 请求:

在 Firebug 中,它显示“状态代码 0 错误”。

知道我在做什么错吗?在此先感谢您的帮助!

问候,菲尔

0 投票
2 回答
1394 浏览

angularjs - 在 AngularJS 中使用 restangular 或 $resource 访问 JSON

我已经完成了所有可能的阅读,但是我缺少将 AngularJS 与 Django Rest 框架一起使用的东西。为了解决“斜线”问题,我使用了restangular。我的模块的相关部分:

TcpMon 似乎显示了正确的响应:

但是我如何访问它?在我看来,这段代码不起作用:

我需要手动解析json吗?如果是,如何?提前感谢您的帮助。

问候,菲尔