2013-06-04 1 views
0

Когда я пытаюсь передать запись переменная из одного представления в другое, я получаю запись во втором представлении.Backbone.js - Значение не передается из представления в другое представление

Это мои сообщения Просмотреть

append_post: function(post){   
    view = new Stream.Views.PostEntry({entry: post}); 
    $("#stream-bank").append(view.render().el); 
} 

Это мой пост вид входа

Stream.Views.PostEntry = Backbone.View.extend({ 

    template: JST['streams/post'], 

    render: function(){ 
    console.log(entry); // Error: 'entry is not defined' 
    this.$el.html(this.template({post: entry})); 
    return this; 
    } 
}); 
+0

Вы случайно (я надеюсь) создал глобальную переменную, не говоря 'уаг view' внутри' append_post'. –

ответ

1

Backbone обрабатывает некоторые аргументы конструктора, назначая их свойств этого (см View # инициализации для деталей), остальные идут в это. - му слишком коротка

render: function(){ 
    console.log(this.options.entry); // 
    this.$el.html(this.template({post: this.options.entry})); 
    return this; 
} 
+2

Не хотите сказать 'this.options.entry'? –

+0

Когда я делаю this.entry, сообщение не определено. Но this.options.entry работает! благодаря! –

+1

@Srikanth: Backbone обрабатывает некоторые аргументы конструктору, присваивая им свойства 'this' (см. [' View # initialize'] (http://backbonejs.org/#View-constructor) для деталей), остальные идут в 'this.options'. –