首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >BackboneJs:在视图中,el:和tagName有什么不同:

BackboneJs:在视图中,el:和tagName有什么不同:
EN

Stack Overflow用户
提问于 2011-09-15 22:30:53
回答 2查看 3.1K关注 0票数 16

我正在试着去理解这个概念。

您能为我简化一下吗?也许可以提供一个简单的示例来说明el:属性和tagName:属性之间的区别?

在一些示例中,不同的视图有时使用el:,而其他视图使用tagName:

我专门对我自己的example实现进行了修改。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-15 22:43:21

区别在于:

el应该用来保留对表示整个视图的实际DOM节点的引用。

这意味着你可以很容易地使用jQuery或者w/e对它执行操作。$(this.el).hide()或者$(this.el).html(‘我现在是一个Jquery对象’);

TagName只是一个字符串,用于确定DOM节点el的类型。缺省值是div,但如果您愿意,您可以将其设置为任何HTML元素。

考虑一下:

代码语言:javascript
复制
var view = Backbone.View.extend({
    tagName: 'p',
    initialize: function () {
        _.bindAll(this, 'render');
    },
    render: function() {
        $(this.el).html('I am a jQuery-ized paragraph');
        return this;
    }
});


$(document.body).append(new view().render().el);

您可能会遇到的问题是,有时在实例化视图时设置el,在这种情况下,tagName是无关紧要的:

代码语言:javascript
复制
var myView = new view({ el: $("someExistingEl") });
票数 17
EN

Stack Overflow用户

发布于 2013-05-24 06:19:50

代码语言:javascript
复制
var View = Backbone.View.extend({
  tagName: 'span',
  id: 'identity',
  class: 'classy',
  el: $(this.tagName), // or
  el: $('<' + this.tagName + ' />', {
    id: this.id,       // identity
    'class': this.class  // classy
  })  // this is jQuery shorthand for building an element fyi
});

var view = new View();

我认为这应该很好用。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7432560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档