讓我先顯示我需要的內容,以便您瞭解我的問題。 我有這樣一個聯繫人視圖:骨幹:視圖中的視圖列表
ContactView = Backbone.View.extend({
template: _.template("Name: <%= name %>
E-mail: <%= email %>
Phones
<%= label1 %> - <%= number1 %>
<%= label2 %> - <%= number2 %>"),
render: function() {
var contact = this.template(this.model.toJSON());
this.$el.html(contact);
}
});
到目前爲止好,問題是,手機的部分是一個列表,我的模型擁有手機的數組,我需要把它動態地在該模板。
我的想法是創建另一個模型,並查看Phone和PhoneView。 然後在ContactView我將創建一個方法render_phones,如:
render_phones: function() {
var phones = this.model.get('phones');
var phones_str = "";
for (var i in phones) {
var phone = new Phone(phones[i]);
var phoneView = new PhoneView({model: phone});
phones_str += phoneView.render();
}
return phones_str;
}
我改變了ContactView模板這樣:
template: _.template("Name: <%= name %>
E-mail: <%= email %>
Phones
<%= phones %>"),
但如何讓我的渲染方法得到的電話列表呈現並放在模板裏面?
我找不到處理這種情況的模式。代碼開始看起來不太好。
ps:這只是一個例子,我的應用程序還有其他幾個部分,我需要這個,這個視圖需要在列表中生成子視圖。
我的意思是,渲染方法已經有:this.template(this.model.toJSON()); 我將不得不使電話字符串成爲模型的一部分,因此它可以在模板中顯示。但那樣做會非常醜陋,我認爲這種做法不正確。 –