1

我在项目视图中显示模型时遇到问题。目前使用 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()); 

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

有谁知道如何克服这个?

4

1 回答 1

2

我认为你应该这样做:

initialize: function(){

    this.model = new User({
        lastName: UserSession.lastName, 
        firstName: UserSession.firstName
    });
}
于 2012-09-27T11:01:50.970 回答