动态渲染骨干视图

时间:2013-08-29 07:05:32

标签: javascript backbone.js

我有以下Backbone View:

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);
  }
});

我正在考虑在初始化View之前,Body中已存在标识为DOMid的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属性。

我如何实现目标。

1 个答案:

答案 0 :(得分:0)

如果要动态设置MyView的id,则必须使用以下函数:

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

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

new MyView({el:'#mydiv',id:'myview2'});