MeanJS:在Angular中设置数组中的Mongoose对象引用
MeanJS: setting Mongoose object reference in array in Angular
我正在使用MeanJS,遇到了一个障碍。如果可能的话,我想使用MeanJS提供的Angular中$resource服务的$update函数。以下是我尝试做的一个非常简化的版本:
Mongoose模式:
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var Lotion = new Schema({
name: String;
});
var BasketSchema = new Schema({
lotions: [{
type: Schema.ObjectId,
ref: 'Lotion'
}]
});
Angular:请注意,我已经在页面加载时检索到了Lotion对象和Basket对象,现在只是尝试将Lotion对象添加到篮子的乳液数组中。
$scope.putTheLotionInTheBasket = function(lotion, basket){
basket.lotions.push(lotion);
basket.$update(function(data){
//success
},
//failure
function(error){
$scope.error = error.data.message;
}
)
}
正如你所看到的,这是行不通的。它返回一个带有Cast to ObjectId failed for value "[object Object]" at path "agencies", name:CastError,…}
的400
有没有一种简单但正确的方法可以做到这一点?我是否必须创建一个新的REST端点和$resource函数,并传递乳液ID才能在服务器上进行查找,即使我在客户端已经有了这两个对象?
我对解决方案的简单性感到尴尬,但它就在这里。由于Mongoose会在内部将一个有效的十六进制对象ID字符串强制转换为Mongoose.Schema.ObjectId,我可以简单地替换
basket.lotions.push(lotion);
带有
basket.lotions.push(lotion._id);
然后MEANJS和Mongoose为我完成剩下的繁重工作。很简单。。。我只花了几天时间就弄清楚了:/
相关文章:
- 如何使用object.assign()从其他对象引用基本对象属性
- 返回 JavaScript 类值而不是对象引用
- Facebook:当发布期望对象引用时显示打开的图形对话框
- Javascript-如何从字符串/对象引用回调
- 将其用于对象引用
- 如何将对象引用传递到 mootools 中另一个对象的构造函数中
- Javascript:将类/对象引用设置为 NULL,内存中的子对象/类会发生什么
- 在 Jquery 中,我可以存储对象引用并在以后使用它吗?
- 将对象函数传递给请求动画帧时丢失对象引用
- JavaScript ecma6中的对象引用
- 在JSON中存储对象引用
- 为什么可以在内部函数成员中访问对象引用,而不能在内部属性成员中访问
- 对象引用的隐式传递是如何工作的
- 按对象的 ID 删除对选定对象的对象引用
- 为什么mongoose.connect()在mongoose对象上没有作为方法出现时工作得很好
- 在调用的函数中使用对象引用(this)
- 如何在testcomplete+js中获取对象引用
- 在Angularjs服务中为返回对象引用的http请求提供的数据构建简单的缓存
- MeanJS:在Angular中设置数组中的Mongoose对象引用
- Mongoose:如何循环遍历包含对象引用(_id)的数组