如何在渲染前在 Marionette Backbone 视图中格式化模型的值?

How to format the values of a model in Marionette Backbone View before rendering?

如果您实施 onBeforeRender 方法,则无法访问模型值以临时格式化它们

理想情况下,您当然希望在渲染之前格式化值而不更改模型值!

怎么做?

通过检查此 link:http://derickbailey.github.io/backbone.marionette/docs/backbone.marionette.html

你会发现 serializeData 在渲染模板之前被使用

因此,通过覆盖它,如下所示,您可以在渲染之前以任何方式格式化对象值

serializeData():any {
        var obj = super.serializeData();

        obj.totalEnergy = Math.round(obj.totalEnergy).toFixed(0)

        return obj
    }

Marionette 视图也有用于此目的的 templateHelpers。 templateHelpers 可用于向视图提供除模型之外的任何其他数据。可以指定函数来格式化要在视图上呈现的模型数据。查看 Marionette 视图文档中模板助手的基本示例 - http://marionettejs.com/docs/marionette.view.html#basic-example