如何为Marionette模板提供数据属性?

时间:2013-07-05 00:50:42

标签: zurb-foundation marionette

我在这个项目的开头。我正在使用zurb-foundation和牵线木偶。我有一个元素正在渲染一个应该是标签的模板。目前的情况:

define([
  "backbone",
  "marionette"
], function(Backbone, Marionette) {

  MyItem = Backbone.Marionette.ItemView.extend({
    template: "#design-tabs",
    className: "section-container tabs",

    onRender: function() {
      $(this.el).foundation();
    }
  });

  return MyItem;
});

没有标签。我认为这是因为<div>被渲染以替换<script&gt;模板中的标签没有特定的数据属性(数据部分)。我去寻找类似'className'的东西,我可以添加到上面的ItemView声明中以包含数据属性,但我已经干了。我想要这样的东西:

MyItem = Backbone.Marionette.ItemView.extend({
  template: "#design-tabs",
  data: {
    data-section: "",
    data-foo: "bar"
  },
  className: "section-container tabs",
  .
  .
  .

如何将数据属性添加到替换模板中<div>的{​​{1}}(或其他)?

2 个答案:

答案 0 :(得分:39)

要添加数据属性,请使用Backbone的attributes哈希:

var MyView = Backbone.Marionette.ItemView.extend({
  template: "#design-tabs",
  className: "section-container tabs",
  attributes: {
    "data-section": "",
    "data-foo": "bar"
  }
});

文档:http://backbonejs.org/#View-attributes

答案 1 :(得分:14)

如果您更喜欢或需要动态值,可以这样做:

attributes: function() {
  return {
    'src': this.model.get('avatar_src')
  };
}