gpt4 book ai didi

javascript - 如何在 marionette 中渲染没有 model.toJSON() 的模板

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

我正在将 Backbone 应用程序转换为 Marionette,但找不到使用模型但不使用 toJSON() 来渲染模板的解决方案。据我所知,Marionette 自动使用 this.model.toJSON() 渲染模板

这是我的主干代码:

$(this.el).html(this.template(this.model))

在我的模板中,我使用以下内容:

<div>
<% if (methodName()) { %>
<%= get('attribute'); %>
<% } %>
</div>

最佳答案

根据itemView documentation你只需调用渲染即可。

Marionette 公开了一个 rendered 事件,您可以监听该事件以附加您的 View 内容。

// ...snip

initialize: function () {
this.listenTo(this.model, "change", this.render);
},

onRendererd: function (view) {
// this is not exactly good practice
// better handle this on the outside with a layout
this.$el.appendTo($("#screens"));
}

// ...snip

为了遵守 Marionette 惯例,您应该使用 layouts and regions .

如果您依赖模板中的逻辑,那么重构您的模板是一个好主意:

<div>
<% if (booleanAttribute) { %>
<%= attribute %>
<% } %>
</div>

然后在您的模型中使用 parse 方法:

// ....snip
parse: function (response) {
return _.defaults({
booleanAttribute: this.method(response)
}, response);
},
// ...snip

关于javascript - 如何在 marionette 中渲染没有 model.toJSON() 的模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30053935/

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