我从2天开始做实验来找出差异。 所以我已经把
console.log (self.model);
在/custom/modules/Emails/clients/base/views/preview/preview.js中,是的,我在异步操作中,这就是为什么我使用自我; 我这样做了。
var accountsBean = app.data.createBean('Emails', {id:self.model.get('id)')});
但我发现它们之间存在很大差异。 self.model有to_collection,from_collection填充数据,而这些字段在accountsBean中为空,但to_addrs_names,from_addr_name已填充,而self.model中不存在这些
我是否缺少与核心功能或骨干相关的任何内容?
我试图像这样启动电子邮件抽屉。
var accountsBean = app.data.createBean('Emails', {id: self.model.get('id)')});
accountsBean.fetch({
view: "compose-email",
success: function (col,data) {
console.log(data);
var prefill = app.data.createBean('Emails');
prefill.copy(data);
app.drawer.open({
layout: 'compose-email',
context: {
create: true,
model: prefill,
module: 'Emails',
}
})
}
})
即使我使用
var prefill = app.data.createBean('Emails'); prefill.copy(data);
我收到错误
FATAL[2018-3-9 16:40:8]: Uncaught TypeError: e.has is not a function
如果我只是在上下文中传递数据
app.drawer.open({
layout: 'compose-email',
context: {
create: true,
model: data,
module: 'Emails',
}
})
然后我发现了这个错误。
FATAL[2018-3-9 17:6:19]: Uncaught TypeError: this.model.on is not a function
答案 0 :(得分:0)
我假设您之后使用了accountsBean.fetch({success:console.log})
?
在提取选项中指定fields
(字段名称数组)或view
(视图名称)总是一个好主意,让服务器知道您需要哪些字段 - 因为默认情况下不会传输所有字段(以节省带宽和提高性能)。
如果您没有指定任何这些选项,服务器只会加载一些默认值,但可能不包含所有字段。
e.g。试试
accountsBean.fetch({
view: "preview",
success: console.log
})
这会导致模型包含预览viewdef中指定的字段。
如果您只想获取某些字段,可以使用例如
accountsBean.fetch({
fields: ["from_collection", "to_collection"],
success: console.log
})
答案 1 :(得分:0)