backbone.js – Backbone.Marionette – 访问ItemView模板或CompositeView模板中的变量

前端之家收集整理的这篇文章主要介绍了backbone.js – Backbone.Marionette – 访问ItemView模板或CompositeView模板中的变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在这里,我想访问一个变量或变量列表,这些变量或变量列表在从相应的模板初始化新视图时传递.

代码示例

创建列表视图

@Taskit.module "Tasks.List",(List,Taskit,Backbone,Marionette,$,_) ->
    class List.NewTask extends Taskit.Views.ItemView
        template: JST["backbone/taskit/tasks/tasks/list/_templates/new_task"]

上面列表视图的模板

<div id="new-task-form">
</div>

初始化ItemView

view = new Taskit.Tasks.List.NewTask
    project_id: "project_id"

这里我的问题是如何从模板中访问“project_id”变量.

<%= project_id %> #is not working

在Backbone中,它可以通过实现

$(@el).html(@template({task: @model,project_id: "project_id"}))

怎么做Marionette.js?

解决方法

您可以提供自己的方法来序列化数据:

https://github.com/marionettejs/backbone.marionette/blob/master/docs/marionette.itemview.md#itemview-serializedata

Backbone.Marionette.ItemView.extend({
  serializeData: function(){
    var data = this.model.toJSON();
    data.project_id = this.project_id;

    return data;
  }
});

猜你在找的JavaScript相关文章