Вопрос

Я работаю над преобразованием одностраничного приложения в Backbone.js.Ниже представление использует тег для тела, так как это Tagname - т. Е. Я хочу, чтобы представление займет все содержимое страницы.Я не хочу использовать контейнеров Divs или другие хаки.

var ThingView = Backbone.View.extend({  
    tagName : "body",
            ... 


    // Show the HTML for the view 
    render : function() {  
        console.log('Displaying thing')
        $(this.el).append('<h1>test</h1>');
        console.log('finished')
        console.log($(this.el))
        return this; // For chaining
.

При рендеринге я вижу

finished
[
<body>​
    <h1>​test​</h1>​
</body>​
]       
.

Но после того, как я проверю DOM, тело больше не имеет текста.

Это было полезно?

Решение

tagName Указывает, какая метка метки следует использовать для создания его EL, если нет EL не предоставляется конструктором.Созданный элемент не вставляется автоматически в DOM.

Самый простой способ, вероятно, создать свой вид с его EL SET для body:

new ThingView({el:'body'})
.

Другие советы

Какой Никошр объяснил, является правильным.Добавление к нему, используя Tagname верно.Но в идеале вам следует использовать EL элемент, который определяется в библиотеке Backbone.js в виде элемента (EL) View.

Ниже приведен идеальный код, который вы должны использовать при этом.

<script type="text/javascript">
            $(document).ready(function(){  
             var ThingView  = Backbone.View.extend({
                    el:$("body"),                   
                    initialize: function(){
                            _.bindAll(this,"render");
                            this.render();  
                    },
                    render:function(){
                        this.el.append('<h1>test</h1>');    
                        console.log('finished');
                        console.log($(this.el).html());                     
                    }
                });    
                var ThingView = new ThingView();
            });
</script>
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top