Backbone.Marionette - 访问ItemView模板或CompositeView模板中的变量

时间:2013-05-05 21:14:44

标签: backbone.js marionette

在这里,我想访问一个变量或变量列表,这些变量或变量列表是在从相应模板初始化新视图时传递的。

代码示例

创建列表视图

@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中执行此操作?

1 个答案:

答案 0 :(得分:12)

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

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;
  }
});