1

アイテムビューにモデルを表示できません。現在、backbone.marionetteでrequire.jsを使用しています。

これは私のヘッダーテンプレートです:

// 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 %>

これは、アイテムビューを表示しようとしたときのコードです

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

このコードを実行すると、ビューは正常にレンダリングされますが、モデル(名と姓)のデータが正しくありません。名と姓はどちらもnullです。奇妙なことは、initializeとonRenderの両方にあり、どちらも名と姓が正しく表示されます。

誰かがこれを克服する方法を知っていますか?

4

1 に答える 1

2

私はあなたが次のようにすべきだと思います:

initialize: function(){

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