2013-05-04 4 views
0

Я пытаюсь сделать, но я не знаю точно javascript и сравниваю эту ошибку: Uncaught ReferenceError: wrapper не определен. Я бы сделал результат выборки коллекции в том же представлении.Рендеринг в магистральной ошибке

 var HomeView = Backbone.View.extend({ 

template: Handlebars.compile(template), 

events: { 


    }, 

    initialize: function() { 

     console.log("inhomeview"); 

     var amici = new Usercollection(); 
     amici.fetch({ 
     success: function() { 
     amici.each(function(object) { 

     console.log(object.toJSON()); 
     var wrapper=object.toJSON(); 



    }); 
    }, 
    error: function(amici, error) { 
    // The collection could not be retrieved. 
    } 
     }); 

     this.render(); 

    }, 

    render: function() { 

     var context=wrapper; 
     var html =this.template(context); 


     this.$el.html(html); 


    return this; 
    } 



    }); 

    return HomeView; 

     });  
+0

Вы определяете 'wrapper' вар внутри совершенно другой функции, так что выиграл» t быть доступным внутри области «render». – m90

+0

Теперь я определил обертку с глобальной областью, но сравните эту ошибку: Uncaught TypeError: Не удается прочитать свойство 'object' undefined –

ответ

0

Может быть, вы хотите сделать что-то похожее на это (пожалуйста, прочитайте комментарии в коде ниже):

var HomeView = Backbone.View.extend({ 

    template: Handlebars.compile(template), 

    initialize: function() { 
    // its better to pass collection into view and listen to its 'reset' event 
    this.collection.on('reset', this.render, this) 
    }, 

    render: function() { 
    // convert collection to json and pass to template as "users" 
    var html = this.template({users: this.collection.toJSON()}); 
    this.$el.html(html); 
    return this; 
    } 

}); 

// This is how you should be using it later in your code: 
// create collection and pass it in home view 
var users = new Usercollection(), 
    homeView = new HomeView({collection: users, 
          el: '#pagina'}); 
// fetch collection, this will trigger 'reset' event 
// so your view will render itself 
users.fetch(); 
Смежные вопросы