我有Students
和Classes
,他们之间有一个hasMany关联。
我这样做:
myStudent.setClasses(ids). then(function(result) {
console.log(myStudent.Classes);
});
问题:
result
参数在then-handler中意味着什么?myStudent.Classes
与我所做的setClasses()
更改保持同步? Classes
成员?我需要向调用者返回一个简单的JSON响应。答案 0 :(得分:1)
根据docs,result
在将Classes
方法发送到.setClasses
时会与之关联ids
。
因此,您的Classes
参数实际上应该是Class.findAll({where: {id: ids}})
.on('success', function (classes) {
myStudent.setClasses(classes)
.on('success', function (newAssociations) {
// here now you will have the new classes you introduced into myStudent
// you say you need to return a JSON response, maybe you could send this new associations
})
})
,也许您应该在之前要求它们
myStudent
它没有更新,因为有关对象关联的查询不依赖于您的原始对象(result
)。您应该在现有的newAssociations
数组中添加新的关联(在您的示例中为myStudent.Classes
var,Class.findAll({where: {id: ids}})
.on('success', function (classes) {
myStudent.setClasses(classes)
.on('success', function (newAssociations) {
myStudent.Classes = myStudent.Classes || [];
myStudent.Classes.push(newAssociations);
// guessing you're not using that myStudent obj anymore
res.send(myStudent);
})
})
)。也许reloading您的实例也可以正常运行。
Classes
我希望我用之前的两个答案回答这个问题,如果没有,你能否通过更新{{1}}成员来解释你的意思?