$save()上的$resource抛出TypeError:Object#<g>没有方法'推'
$resource on $save() throws TypeError: Object #<g> has no method 'push'
资源工厂:
.factory('WorkerRepository', function($resource){
return $resource('workers/:id', {id:'@id'});
})
控制器:
.controller('ListController', function($scope, WorkerRepository){
var workers = WorkerRepository.query(function(){
$scope.workers = workers;
});
$scope.worker = {nameSurname: 'Peter', email: "test@gmail.com", phone: 600100200};
$scope.add = function() {
var worker = new WorkerRepository(this.worker);
worker.$save();
};
})
当执行$scope.add
方法时,脚本抛出TypeError: Object #<g> has no method 'push'
错误。如果我正确理解$resource
,那么默认情况下$save
方法只提供'save': {method:'POST'},
,因此没有isArray: true
。那么为什么我会出现这个错误呢?
显然,错误出现在我的后端REST控制器中(感谢@Stewie的提示!)-我没有将POST方法链接到操作,所以$save()
方法调用了负责query()
的操作,它确实返回了一个对象数组。
曾:
query() -> GET /workers -> return array of workers
save() -> POST /workers -> return array of workers
后端控制器重构后:
query() -> GET /workers -> return array of workers
save() -> POST /workers -> return created worker
相关文章:
- 为什么dijit.form.Select有方法setStore(),而dijit.fform.FilteringSele
- 可以用<<方法>>:<<method_param>>
- JSPM-是否有方法或需要对捆绑文件进行版本化
- 当用户试图删除indexedDB数据库时,是否有方法执行函数
- Box2dWeb中是否有方法将对象的位置.x输出到console.log()
- 是否有方法在WebCrypto API中获取RSA密钥的组件
- 是否有方法可以快速确定浏览器是否支持启用了cors的图像而不会污染浏览器?
- 是否有方法以编程方式确定私钥是用DER还是PEM编码的?
- 在反序列化JSON对象时,是否有方法将属性名称转换为小写?
- 是否有方法检查特定点(X,Y)是否在SVG元素中
- 是否有方法减少相同if语句的代码
- 在babel编译时是否有方法注入或忽略全局变量?
- Node.js query:是否有方法提示用户自定义大小的数组
- 在检查字符串时,是否有方法包含单词变体(过去时,动名词)
- 当元素不处于悬停状态时,是否有方法获得元素的HOVER样式?
- 是否有方法检测和更改输入值格式
- 解析JSON字符串后是否有方法获得对象属性
- 如何处理";不能<方法><路由>"在Express中
- 检查对象是否有方法,而不实例化它
- 在附加到webRequest事件时,是否有方法访问匹配的URL模式