0

我有两个模板(标题和详细信息)

  • 标题包含一些详细信息以及详细信息部分的占位符
  • 详细信息包含更多详细信息。

我的问题是当我运行应用程序时,它不会替换页眉占位符内的详细信息模板。

查看 1

 var CalendarView = Backbone.View.extend({
        el: '#header',
        model: todo,
        initialize: function () {
            this.render();
            this.monthView = new MonthView({ el: "#dvDetail", model: this.model });
        },
        render: function () {
            template.render("testHeader.htm", $(this.el), { data: this.model.toJSON() });
        }
    });

查看 2

var MonthView = Backbone.View.extend({
    initialize: function () {
        this.model.bind("change", this.render, this);
        this.render();
    },
    render: function () {
        template.render("testDetail.htm", $(this.el), { data: this.model.toJSON() });
    }
});

索引.html

<div id="header"></div>

测试头文件.htm

<div>This is header </div>
<div id="dvDetail">Sub template should be replace here...</div>

测试详细信息.htm

<div>This is details template and replaced on #dvDetail html</div>

当我运行应用程序时,它将显示

This is header
Sub template should be replace here...

我会要求

This is header
This is details template and replaced on #dvDetail html

任何人都可以让我知道此代码中缺少什么以获得所需的输出吗?任何线索将不胜感激!

4

1 回答 1

0

如果您使用下划线或 lodash,这是我对您的渲​​染功能的建议...

....

   template: _.template("testDetail.htm"), //just a sample , as an idea
   el: '#header',
   model: todo,
   initialize: function () {
       this.render();
       this.monthView = new MonthView({ el: "#dvDetail", model: this.model });
   },
   render: function() {
      this.$el.html(template);  //this will do the trick for you
   }

....

和你的 MonthView 一样...

于 2013-06-19T14:54:21.343 回答