1
我在項目視圖中顯示模型時遇到了問題。 當前在backbone.marionette中使用require.js。itemview上的模型未顯示
這是我的頭部模板:
// 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上,它們都正確地顯示名字和姓氏。
有誰知道如何解決這個問題?
哇!謝謝!試圖解決這個問題需要數小時,因爲我可以直接附加模型而無需隱式設置模型。 – hrusli
你也可以在創建視圖時傳遞模型作爲參考:'layout.header.show(new HeaderView(model:UserModel));' – Ingro
好的ingro。 fwiw,原始代碼因爲沒有在視圖中指定'el:$(「#whatever」)''的原因而失敗:http://lostechies.com/derickbailey/2011/11/09/backbone-js-對象文字的視圖事件,jQuery的和-EL / –