2013-08-29 3 views
0

У меня есть следующий Backbone View:Рендер вида Backbone динамически

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

Я рассматриваю, что HTML-элемент с идентификатором DOMid уже существует в теле Перед инициализацией View. Тогда я инициализация вида как:

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

В этом случае ввиду генерируются, но без какого-либо какого-либо атрибута идентификатора в нем ,

Как подойти к своей цели.

+0

Вы пытались использовать '.append (this.render(). $ El)' вместо '.append (this. $ El)'? – TMichel

+0

@TMichel Без изменения результата – codeofnode

ответ

0

Если вы хотите установить идентификатор MyView динамически, вы должны использовать функцию:

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

Но уборщик подход должен был бы использовать назначенные арг MyView на конкретизации:

new MyView({el:'#mydiv',id:'myview2'}); 
Смежные вопросы