关于Backbone.js:Backbone.Marionette-访问ItemView模板或CompositeView模板中的变量

 2021-04-27 

Backbone.Marionette - Accessing variables in the ItemView template or CompositeView template

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

代码示例

创建列表视图

1
2
3
@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"]

以上列表视图的模板

1
 

初始化ItemView

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

这里我的问题是如何从其模板访问" project_id "变量。

1
<%= project_id %> #is not working

在Backbone 网中,可以通过

实现

1
$(@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

1
2
3
4
5
6
7
8
Backbone.Marionette.ItemView.extend({
  serializeData: function(){
    var data = this.model.toJSON();
    data.project_id = this.project_id;

    return data;
  }
});