Angularjs 来自服务和id问题的角度更新
我一直在遵循Scotch.io教程,使用Stamplay和Angular从这里构建Etsy克隆 我一直在尝试更新记录。我有一个具有以下功能的服务:Angularjs 来自服务和id问题的角度更新,angularjs,stamplay,Angularjs,Stamplay,我一直在遵循Scotch.io教程,使用Stamplay和Angular从这里构建Etsy克隆 我一直在尝试更新记录。我有一个具有以下功能的服务: function update(id, data) { var def = $q.defer(); // instantiate a new product model from the stamplay js sdk var product = new $stamplay.Cobject(‘product’).Model;
function update(id, data) {
var def = $q.defer();
// instantiate a new product model from the stamplay js sdk
var product = new $stamplay.Cobject(‘product’).Model;
product.fetch(id)
.then(function() {
// loop over the fields in data and update the product
angular.forEach(data, function(value, key) {
product.set(key, value);
});
return product.save();
})
.then(function() {
// return the record
def.resolve(product);
});
return def.promise;
}
然后,在我的实际控制器中,我有另一个连接到服务并执行更新的功能:
function update() {
Product.update(main.productData)
.then(function (data) {
main.successMessage = 'Record Updated!';
});
}
问题是我没有获取id,即使函数确实/应该获取id
我得到的错误是
[错误]加载资源失败:服务器响应状态为400(错误请求)([对象],第0行)
它的网址是
/api/cobject/v1/prdouct/[object%20Object]
显然没有拿到身份证
欢迎提出任何意见 更新方法有两个参数,您只提供一个product.set和product.save?还必须在控制器中定义吗?-我是Angular的新手。我猜这个调用:Product.update(main.productData)使用的是上面定义的update方法,在这种情况下,main.productData对象作为id参数传递并由fetch使用,这将解释url似乎传递到url中的任何内容都不是一个基本值类型,而是一个数组或对象。您可以注销此值以查看传递到url的内容吗?