javascript - Marionette.CompositeView,如何将参数传递给Marionette.ItemView

标签 javascript backbone.js marionette

我想从 Marionette.ItemView 访问 app.vent。

也许可以选择将参数 (app.vent) 从 Marionette.CompositeView 传递到 Marionette.ItemView

这是我的代码:

// view/compositeView.js
define([
    'marionette',
    'views/item'
], function (Marionette, itemView) {
    var ListView = Marionette.CompositeView.extend({ 
        itemView: itemView
    });
});

有什么想法吗?

附注:
我无法从 itemView 访问该应用程序,因为存在循环依赖问题。

app -> view/compositeView -> view/itemView

最佳答案

v0.9 添加了可用于此目的的 itemOptions 属性。它可以是对象字面量,也可以是返回对象字面量的函数。



Backbone.Marionette.CompositeView.extend({
  itemView: MyItemViewType,

  itemViewOptions: {
    some: "option",
    goes: "here"
  }

});

此属性返回的所有 key: "value" 对都将提供给初始化程序中的 itemview 选项


Backbone.Marionette.ItemView.extend({
  initialize: function(options){
    options.some; //=> "option"
    options.goes; //=> "here"
  }
});

此外,如果您需要为构建的每个 itemView 实例运行特定代码,您可以重写 buildItemView 方法,为集合中的每个对象提供项目 View 的自定义创建。


  buildItemView: function(item, ItemView){

    // do custom stuff here

    var view = new ItemView({
      model: item,
      // add your own options here

    });

    // more custom code working off the view instance

    return view;
  },

有关详细信息,请参阅:

关于javascript - Marionette.CompositeView,如何将参数传递给Marionette.ItemView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11273115/

相关文章:

php - 主干和 PHP 模型代码重复

backbone.js - 如何在模型中没有定义名称的情况下迭代 Handlebars 模板中的数组

javascript - Uncaught Error : Cannot instantiate more than one Backbone. RelationalModel 每个类型具有相同的 id

javascript - Ramda - 查找类似函数但返回谓词的非虚假结果而不是找到的值

javascript - 如何在 Javascript 中的集合对象中创建 key => value 数组

javascript - 我无法遍历我的 JSON 并获取我的数据

javascript - 使用变量在 node.js 应用程序中执行正则表达式 Mongo 搜索

javascript - 获取 ('order' )如何工作?

javascript - Backbone JS : self populate Collection

javascript - 如何处理通过附加下划线模板传递的模型