gpt4 book ai didi

javascript - Etch.js 与 Backbone.Marionette.js 集成

转载 作者:行者123 更新时间:2023-11-28 02:34:00 24 4
gpt4 key购买 nike

有人曾经在 Backbone.Marionette.js 应用程序中遇到过 Etch.js 的集成吗?

我在绑定(bind)保存事件时遇到问题。这是我的 Marionette View 的代码:

MyApp.module('Views', function(Views, App, Backbone, Marionette, $, _) {

Views.DetailsView = Marionette.ItemView.extend({

template: '#details',

initialize: function(options) {
_.bindAll(this.model, 'save'); // I think the problem is related to the binding
this.model.bind('save', this.model.save);
},

events: {
'mousedown .editable': 'editableClick'
},

editableClick: etch.editableInit
});
});

在我的模板中,我有类似以下内容:

<div id="detail-expanded">
<p>Description: <span class="editable">{{ description }}</span></p>
</div>

插件已正确加载,如果我单击该字段,我可以看到 eclipse 刻按钮栏,我可以编辑可编辑的元素内容,如果我单击保存按钮,我实际上可以触发模型save() 方法。

问题是提交的模型是原始模型,没有我对字段所做的编辑。我认为这是一个具有约束力的问题,有什么想法吗?

一如既往,预先致谢。

最佳答案

所以,这里的问题与 marionette 并不真正相关,而是 etch 无法处理将数据从可编辑字段移动到模型。我应该在文档中更明确地说明这一点。您想要做的是在 View 上创建一个保存函数,为您执行此操作,如下所示:

Views.DetailsView = Marionette.ItemView.extend({

template: '#details',

initialize: function(options) {
_.bindAll(this, 'save');
this.model.bind('save', this.save);
},

events: {
'mousedown .editable': 'editableClick'
},

editableClick: etch.editableInit,

save: function() {
// populate model attrs from dom
var title = this.$('.title').text();
var body = this.$('.body').text();


this.model.save({title: title, body: body});
}
});

抱歉造成困惑。我可以看到文档在这方面是如何误导的。

关于javascript - Etch.js 与 Backbone.Marionette.js 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13708270/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com