我有一個骨幹模型的屬性和一些輔助方法輸出的東西,而不是實際的屬性(例如格式)。骨幹toJSON與幫助方法
但是,當我呼叫toJSON
時,只返回屬性,所以我的鬍鬚模板無法訪問這些幫助器方法。有什麼辦法可以解決這個問題嗎?或者我應該採取不同的方法?
解決此問題的唯一方法是創建屬性的格式化版本,並在每次屬性更改時更新它?
我有一個骨幹模型的屬性和一些輔助方法輸出的東西,而不是實際的屬性(例如格式)。骨幹toJSON與幫助方法
但是,當我呼叫toJSON
時,只返回屬性,所以我的鬍鬚模板無法訪問這些幫助器方法。有什麼辦法可以解決這個問題嗎?或者我應該採取不同的方法?
解決此問題的唯一方法是創建屬性的格式化版本,並在每次屬性更改時更新它?
豪爾赫,我會在我自己的方法中擴展toJSON,並將新的json添加到模板中。
像這樣:
var userModel = Backbone.Model.extend({
initialize: function(){
_.bindAll(this, 'fullname', 'toFullJSON');
},
fullname: function(){
return this.get('name') + " " + this.get('lastname');
},
toFullJSON: function(){
var json = this.toJSON();
return _.extend(json, {fullname : this.fullname()});
}
});
var user = new userModel();
u.set({name: 'John', lastname: 'Doe'});
// you will see in this console log, that the toFullJSON function returns both the toJSON properties, and your added propert(y)(ies)...
console.log(u.toFullJSON());
確保JSON是正確的。如果你正在返回對象,那麼可能會有一些內部的引用(它們在JSON中不受支持,可能會被忽略)。
謝謝!但對不起,你能詳細說明一下嗎? Backbone.js的toJSON方法只返回模型的屬性對象的JSON,但我在模型中有一些函數,我想在返回的JSON中出現,這樣我的鬍鬚模板可以將它用作幫助器。只是想知道是否有一個首選的方式來完成這與backbone.js –
美麗。謝謝 :) –