主干模板必须是单个div

问题描述 投票:0回答:1

我被告知骨干模板必须包装在单个 div 中。将模板保持为多分区有什么问题吗?

templates backbone.js
1个回答
0
投票

没有这样的规则。您的模板可以是一组松散的独立元素。

但是,每个视图都有一个

.el
,您可以免费获得它,除非您将其设置为现有元素。重要的是要认识到视图的外部元素不是模板的一部分;相反,模板中的任何内容都会进入inside
view.el

例如,如果您的视图定义如下:

var ExampleView = Backbone.View.extend({
    tagName: 'p',
    className: 'important',
    template: _.template('<a href="https://backbonejs.org">Click me</a><br>Cheers'),
    initialize: function() {
        this.render();
    },
    render: function() {
        this.$el.html(this.template());
        return this;
    },
});

然后您将得到以下 HTML 作为输出:

<p class="important">
    <a href="https://backbonejs.org">Click me</a>
    <br>
    Cheers
</p>

一些值得带回家的信息:

  • 您的模板可以包含任意数量的顶级元素。
  • 您总是可以免费获得一个元素,它围绕您的模板。该元素形成了您视野的外部。
  • 外部元素不必是
    <div>
    ;您可以覆盖
    tagName
    使其成为
    <form>
    。您还可以设置
    className
    attributes
    id
    来自定义此元素,或将
    el
    设置为 CSS 选择器以重用现有元素。

这意味着您通常可以通过省略外部包装元素来简化模板!

© www.soinside.com 2019 - 2024. All rights reserved.