问题标签 [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.
angularjs - How can I extend the constructor of an AngularJS resource ($resource)?
I have a model, defined using $resource
, that I am successfully loading.
Each loaded instance is, as promised, an instance of the class I defined.
(The example below is from the Angular docs. In it, User.get
results in an object that is an instanceof User
.)
However, imagine each User comes over the wire like this:
I defined a Preference
factory that adds valuable methods to Preference
objects. But when a User loads, those preferences
aren’t Preference
s, naturally.
I attempted this:
But it has no effect and never logs anything.
How can I make each item in my User
s’ preferences
array an instance of Preference
?
angularjs - 从单个 AngularJS 资源中获取多个支持 CRUD 的对象
如何从 AngularJS 请求一组数据库条目$resource
,这将允许我修改$save()
单个对象?
我有以下代码获取我的数据:
我想做的是类似于:
这将允许我更新 UI(我有一个ng-class
观察date
变量)并在一次调用中保存到数据库。我能做到吗?
ajax - Angularjs,$resource:如何获取插入的对象?
插入完成后,我需要立即获取插入的对象。但这是 Angularjs $resource 的问题。
服务器响应:
new_query
在控制台中打印:
new_query.id, new_query.query
在控制台中打印:
我没有插入文本,而是使用某种哈希。顺便问一下,这是什么哈希?
在模板中,毫秒 anew_query
是一个哈希,在$get
完成(成功)之后new_query
插入文本。成功后如何直接获取插入的文本$get
?
angularjs - 参数名称更改时,使用 PUT 的 angularjs $resource 更新失败
我在这里的理解或代码中遗漏了一些东西......
我有一个非常基本的 CRUD 应用程序来列出/添加/编辑/删除类别,当我将表上的主键定义为“id”时它工作正常,但是当我将数据库列重命名为“categoryId”时, PUT url 不包含键值,我最终会因未处理的路径出现 404 错误...
堆:
用于 RESTful 服务的带有 Slim PHP 的 IIS 7.5
当然代码中还有很多其他地方改名了,但是我看到的效果好像和ngResource有关。
第一种方法产生一个有效的 URL...
第二个产生这个......
由于路径格式错误,出现 404 错误。
是否需要另一个参数(或指令或其他东西)来获取要在 URL 中使用的重命名属性?
angularjs - 如何配置 Angular $resource (ngResource) 以使用 CORS 从另一个域中提取数据
我希望能够使用 $resource 使用 CORS 来请求我的数据来设置资源。我已经让 CORS 与 $http 一起工作,但同样的技术不适用于 $resource,我希望有人能来拯救我并告诉我如何使用 $resource。
我修改了Angular 教程的最后一步,通过在 services.js 文件中破解 phonecatServices 服务来使用 CORS。
我发现这个例子使用了 $http.defaults.useXDomain = true; 删除 $http.defaults.headers.common['X-Requested-With'];line 以获取角度以使用 CORS 请求数据,但如果我尝试 $resource.defaults.useXDomain = true; 我收到错误:“无法设置未定义的属性‘useXDomain’”。
我认为 $resource 没有这个属性,所以我的问题是,如何配置 $resource 以使用 CORS 进行跨域资源请求。
这是我的代码:
当我尝试发出请求时出现以下错误:对象 #<Resource> 没有方法 'push'
编辑
我已经尝试设置 $http 并且它大部分时间都可以工作,但是当调用资源查询时,在本例中为 Phone.get(phoneId); 这似乎引发了上述错误。
调用我怀疑导致错误的代码(来自 controllers.js step 11 angular tutorial):
如果我删除上述方法的内部代码,代码运行良好(没有获取网站的图像),但我不明白为什么这不起作用?我已经将 $http 服务设置为使用 CORS,因此显然应该将其传递给 $resource。
任何人都可以阐明它吗?(任何工作示例代码将不胜感激)。
编辑:13/08/13
就像任何访问这个问题的人都知道,下面的答案都没有真正回答这个问题,我自己正在研究一个答案,但如果有人发现这个并有一个答案,我仍然会非常感激。
编辑:06/09/13
目前正在调查这个项目,似乎允许我正在寻找的一切:https ://github.com/jpillora/xdomain
angularjs - Angularjs资源构建错误的资源url
资源:
询问:
结果:
Angularjs 构建了一个错误的 url,/api/tickets
但它应该是/api/tickets/2/owner
. 任何想法为什么?
angularjs - AngularJS ngResource 删除事件
我正在尝试在用户与之交互时使资源列表保持最新。使用 AngularJS ngResource 我最初使用它的query
方法获取列表。然后每个资源都有一个$remove
(或$delete
)方法,对吗?但是当被触发时,资源不会从返回的列表中删除query
。
这要求很多,我知道,但我几乎希望它能为我做一切。保存它,我怎么能做到这一点。资源本身是否会发出某种事件?它有我可以删除的属性$watch
吗?我怎么知道一个资源是$remove
'd 所以我可以把它从列表中拼接出来?
谢谢。
angularjs - 单元测试角度 ng-resource
嗨,我目前正在使用 karma 和 jasmine 设置一些单元测试。而且我在尝试完全测试 ng 资源时遇到了困难。当我做一个 scope.clients.query() 是执行一个请求。但是当我尝试在单元测试中这样做时,这将失败。
有人有类似的问题吗?有人知道如何解决这个问题吗?
例如
angularjs - 如何在 AngularJS 中刷新/使 $resource 缓存无效
我有一个简单的用户 $resource,它使用默认的 $http 缓存实现,如下所示:
这很好用,即我的服务器只在我的应用程序中调用一次,然后从缓存中获取值。
但是我需要在某个操作后从服务器刷新值。有没有简单的方法可以做到这一点?
谢谢。
javascript - Angular - 使用自定义方法扩展 $resource 子对象
在大多数情况下,<custom-resource>.query()
方法的结果是一个数组,可以使用以下(工厂)代码使用一些方法(业务逻辑)轻松扩展它:
这非常适合与 ng-repeat / ng-class 一起使用,如下所示:
我的问题是每个列表响应都封装在一个对象中,除了实际列表之外,该对象还具有一些元属性(排序信息等),因此返回的最终对象如下所示:
现在,我如何使用 ng-repeat/ng-class 制作与以前相同的东西?
以前的方法不起作用,因为“foo”方法是在对象上定义responseData
而不是在item
对象上定义的
有没有办法直接扩展用于实例化列表中对象的基类?
谢谢!