سؤال

أنا أعمل على تحويل تطبيق من صفحة واحدة إلى 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.

ربما تكون أبسط طريقة هي إنشاء العرض الخاص بك مع ضبطه على body :

new ThingView({el:'body'})

نصائح أخرى

ما هو موضح Nikoshr هو الصحيح.إضافة إلى ذلك، باستخدام TagName صحيحة.ولكن من الناحية المثالية، يجب عليك استخدام العنصر EL، الذي تم تعريفه في مكتبة backbone.js كعنصر (EL) من الرأي.

أدناه هو الرمز المثالي الذي يجب استخدامه أثناء القيام بذلك. giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top