我在项目视图中显示模型时遇到问题。 目前使用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,它们都正确地显示了名字和姓氏。
有谁知道如何克服这个问题?
答案 0 :(得分:2)
我认为你应该这样做:
initialize: function(){
this.model = new User({
lastName: UserSession.lastName,
firstName: UserSession.firstName
});
}