骨干查看默认$ el

时间:2014-05-06 18:22:11

标签: javascript jquery backbone.js backbone-views

我查找了动态地为视图分配el的正确方法,and found this. 根据这篇文章,我在创建视图时传递el元素。

var MyView = Backbone.View.extend({
    initialize: function(options) {
        options = options || {};

        this.$el = this.$el || $(".somediv ul");
    }
});

然后我创建这样的视图:

// creating a view this way works fine.
this.myView= new MyView({
   'el': this.$('.someotherdiv ul')
});

这种视图创建方式按预期工作。但是当我没有向其传递任何el值时会出现问题。

//there is a problem though, If I create view like this: 
this.myView= new MyView();

view.el未设置为$(".somediv ul"),而只是一个div标记。

有谁能告诉我动态分配el并为其设置默认值的正确方法。

1 个答案:

答案 0 :(得分:0)

默认情况下,骨干视图的el设置为空div。因此,this.elthis.$el始终存在。

<击> 你可以试试这个:

 initialize: function (options) {
     options = options || {};
     this.$el = options.el ? $(options.el) : $('.somediv ul');
 }

但通常我不会这样做。您正在将您的观点与&#34; .somediv ul&#34;页面上的元素。 :/

===============编辑==================

是的,这是一个更简单的解决方案。 (愚蠢的我)

在您看来

  YourView = Backbone.View.extend({
    el: '.somediv ul',

    initialize: function () {
    }
  });

this.el将设置为.somediv ul,除非您通过另一个。