我通过一个动作向我的路径文件发送一个普通的旧javascript对象。
在路径文件中,我正在获取记录以进行更新。
.findRecord()
method返回已解决的承诺。
但是,当.then
内部在then
之外的父作用域中声明的变量是空对象时。
路由/ task.js
export default Route.extend({
model (params) {
const id = params.task_id
return this.get('store').findRecord('task', id)
},
actions: {
saveNotes (updatedTask) {
// updatedTask is the expected object {name: "New Name}
console.log(`updatedTask outside is:`, updatedTask);
this.get('store').findRecord('task', taskID).then(task => {
// updatedTask is an empty object {}
console.log(`updatedTask inside is:`, updatedTask);
task.setProperties(updatedTask)
task.save()
})
}
}
});
但是,如果我克隆对象,那么值是正确的。
路由/ task.js
export default Route.extend({
model (params) {
const id = params.task_id
return this.get('store').findRecord('task', id)
},
actions: {
saveNotes (updatedTask) {
// updatedTask is the expected object {name: "New Name}
console.log(`updatedTask outside is:`, updatedTask);
let clone = Object.assign({}, updatedTask)
this.get('store').findRecord('task', taskID).then(task => {
// clone is the expected object {name: "New Name}
console.log(`clone inside is:`, clone);
task.setProperties(updatedTask)
task.save()
})
}
}
});
这是预期的行为吗?