Angularjs 角度资源REST没有方法'$保存';
我想使用Angularjs 角度资源REST没有方法'$保存';,angularjs,Angularjs,我想使用$resource与RESTAPI交互,但调用save方法时,我得到的没有方法“$save”错误。我的代码的灵感来源于上的答案 问题1:在{id:'@id'}中@的目的是什么?我在大多数例子中都发现了这一点 myapp.factory('MonitoringCRUDControllerService', ['Monitoring', function(Monitoring) { return { create: function(id, command, sche
$resource
与RESTAPI交互,但调用save方法时,我得到的没有方法“$save”
错误。我的代码的灵感来源于上的答案
问题1:在{id:'@id'}
中@
的目的是什么?我在大多数例子中都发现了这一点
myapp.factory('MonitoringCRUDControllerService', ['Monitoring', function(Monitoring) {
return {
create: function(id, command, schedule) {
console.log("create");
console.log(command);
console.log(schedule);
Monitoring.id = id;
Monitoring.command = command;
Monitoring.schedule = schedule;
console.log(Monitoring);
Monitoring.$save();
}
}
}]);
监控
对象已正确注入:
function Resource(value){
copy(value || {}, this);
}
调用$save
失败,错误为没有方法“$save”
问题2:保存之前,$
的目的是什么
问题3:要使save方法正常工作,我缺少什么?您需要创建一个
监控类的实例,如下所示(未测试):
文档()有一个类似的示例:
var newCard = new CreditCard({number:'0123'});
newCard.name = "Mike Smith";
newCard.$save();
不久前,我问了关于@
符号的同样问题:。基本上,@
符号表示将从对象的属性读取值。或者正如同一份文件所说:
如果参数值的前缀为@,则该参数的值
参数是从数据对象中提取的(对非GET有用)
操作)
$
不是任何特殊字符,它只是方法名称的一部分。错误消失了,但我注意到在Chrome中,被调用的URL不包含端口号,方法类型是OPTIONS:OPTIONShttp://localhost/wepapp/network/v1/cronjobs
。这种行为有什么原因吗?$resource
处理JSONP吗?我认为JSONP不起作用。我认为angular希望从URL获得JSON数据。我不知道为什么它省略了端口号。文件上说端口号是受尊重的。尝试在默认端口上运行它,看看它是否工作。对于我需要用“\\:”转义的端口,:
,是否使用最新的角度?在转义冒号之前,它之所以使用选项
,是因为没有端口号,这是一个不同的域,所以浏览器发送了一个所谓的CORS“preflight”请求。
var m = new Monitoring({id:id});
m.command = command;
m.schedule = schedule;
m.$save();
var newCard = new CreditCard({number:'0123'});
newCard.name = "Mike Smith";
newCard.$save();