我已经做了20天的实验来找出其中的差别。
console.log (self.model);
在/custom/modules/Emails/clients/base/views/preview/preview. js中,并且是的,我在那里进行异步操作,这就是我使用self的原因;我就这么做了。
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中不存在
我是否遗漏了与核心功能或 Backbone.js 相关的任何内容?
我正在尝试像这样启动电子邮件抽屉。
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
2条答案
按热度按时间2w3kk1z51#
我猜你之后用了
accountsBean.fetch({success:console.log})
吧?最好在fetch选项中指定
fields
(字段名数组)或view
(视图名称),以便让服务器知道您需要哪些字段--因为默认情况下并不是所有字段都会被传输(以保存带宽并提高性能)。如果您不指定这些选项中的任何一个,服务器将只加载一些可能不包含所有字段的默认值。
例如:尝试
这将导致模型包含在预览viewdef中指定的字段。
如果您只想获取某些字段,则可以使用例如
5t7ly7z52#
HI如果你只想在抽屉中打开一个模块,请检查此代码。
有关更多信息,请查看此Link