itemview上的模型未显示

时间:2012-09-27 09:34:13

标签: backbone.js marionette

我在项目视图中显示模型时遇到问题。 目前使用require.js与backbone.marionette。

这是我的标题模板:

// header.js  
define( [
   "jquery",
   "underscore",
   "marionette",
   "user",
   "userSession",
   "text!../../tpl/header_template.html"
   ], function ( $, _, Marionette, User, UserSession, HeaderTemplate ) {

  return Marionette.ItemView.extend( {        
     template: HeaderTemplate,

     initialize: function(){
        alert(UserSession.firstName + " " + UserSession.lastName)
     },

     onRender: function(){
        alert(UserSession.firstName + " " + UserSession.lastName)
     },

     model: new User({
        lastName: UserSession.lastName, 
        firstName: UserSession.firstName
        })
    });
  });

这是模板代码段

   Logged in as <%= firstName %> <%= lastName %>

这是我尝试显示itemview时的代码

// attached the view
layout.header.show(new HeaderView()); 

当我运行此代码时,视图呈现正常,但模型(名字和名字)数据不正确。 firstname和lastname都为null。奇怪之处在于初始化和onRender,它们都正确地显示了名字和姓氏。

有谁知道如何克服这个问题?

1 个答案:

答案 0 :(得分:2)

我认为你应该这样做:

initialize: function(){

    this.model = new User({
        lastName: UserSession.lastName, 
        firstName: UserSession.firstName
    });
}