0

我有以下主干视图:

var MyView = Backbone.View.extend({
  id : 'myview'+atrs.i, //i is the property of atrs passed as parameter to view

  initialize: function(atrs) {
   $('#'+atrs.DOMid).append(this.$el);
  }
});

我正在考虑DOMid在初始化视图之前,body 中已经存在一个带有 id 的 HTML 元素。然后我将视图初始化为:

new MyView({DOMid:'mydiv',i:2});

但我得到错误:cannot read property i of undefined

我也试过:

var MyView = Backbone.View.extend({

  initialize: function(atrs) {
   this.id = 'myview'+atrs.i;
   $('#'+atrs.DOMid).append(this.$el);
  }
});

在这种情况下,会生成视图,但其中没有任何 id 属性。

我如何接近我的目标。

4

1 回答 1

0

如果你想动态设置 MyView 的 id,你必须使用一个函数:

id: function() { return 'myview'+atrs.i; },

但更简洁的方法是在实例化时使用 MyView 的指定参数:

new MyView({el:'#mydiv',id:'myview2'});
于 2013-08-29T08:36:31.477 回答