पर सभी विशेषताओं को प्रस्तुत नहीं करता है मुझे JSON में मॉडल के गुण प्रस्तुत करने की आवश्यकता है ताकि मैं उन्हें टेम्पलेट में पास कर सकूं।बैकबोन मॉडल .toJSON() JSON
created_at: "2012-04-19"
id: "29"
name: "item"
resource_uri: "/api/v1/item/29/"
updated_at: "2012-04-21"
user: "/api/v1/user/9/"
यहाँ मॉडल के JSON है: console.log कर (this.model) के बाद गुण उत्पादन
render: function() {
console.log(this.model);
console.log(this.model.toJSON());
$(this.el).html(this.template(this.model.toJSON()));
return this;
},
यहाँ है: यहाँ एक दृश्य के लिए एक प्रस्तुत करना() फ़ंक्शन कैसा दिखाई देता है है console.log (this.model.toJSON()) के बाद आउटपुट:
id: "29"
__proto__: Object
क्या हुआ?
संपादित करें:
var goal = new Goal({id: id});
goal.fetch();
var goalFullView = new GoalFullView({
model: goal,
});
यहाँ नए दृश्य की सामग्री हैं:: यहाँ इन्स्टेन्शियशन है
console.log(this.model.attributes);
console.log(this.model.toJSON());
यहाँ कंसोल का कहना है:
Object
created_at: "2012-04-23"
id: "32"
name: "test"
resource_uri: "/api/v1/goal/32/"
updated_at: "2012-04-23"
user: "/api/v1/user/9/"
__proto__: Object
Object
id: "32"
name: "test"
__proto__: Object
हैं toJSON को गुणों का एक क्लोन बनाना है, यह सही नाम की प्रतिलिपि क्यों नहीं करता है या यह made_at, update_at फ़ील्ड को कॉपी क्यों नहीं करता है?
संपादित करें 2:
var Goal = Backbone.Model.extend({
// Default attributes for Goal
defaults: {
name: "empty goal",
},
// Check that the user entered a goal
validate: function(attrs) {
if (!attrs.name) {
return "name is blank";
}
},
// Do HTTP requests on this endpoint
url: function() {
if (this.isNew()) {
return API_URL + "goal/" + this.get("id") + FORMAT_JSON;
}
return API_URL + "goal/" + FORMAT_JSON;
//API_URL + "goal" + FORMAT_JSON,
},
});
संपादित करें 3:: मैं पता लगा है कि मैं सफलता कॉलबैक उपयोग करने के लिए लाने से एक दृश्य मॉडल का उपयोग करता है रेंडर करने के लिए की जरूरत है:
यहाँ मॉडल है goal.fetch ({सफलता: फ़ंक्शन (मॉडल) { var goalFullView = नया GoalFullView ({ मॉडल: लक्ष्य, }); }});
आप मॉडल और उसके इन्स्टेन्शियशन रूप में अच्छी तरह दिखा सकते हैं यह हमेशा आशा अनुरूप काम नहीं होगा? – mindandmedia
आपके पास आपके कोड में कुछ और है जो अन्य विशेषताओं को toJSON() के लिए अदृश्य बनाता है, शायद आपके मॉडल या पेस्ट को देखें, आप इसे कैसे प्रारंभ कर रहे हैं ... देखें [jsfiddle] (http://jsfiddle.net/drinchev/ जेएलएफजेबी/1 /) – drinchev
मैंने मूल श्रेणी को मॉडल क्लास के साथ संपादित किया। मुझे लगता है कि toJSON क्यों काम नहीं करता है। हालांकि, यह .model.attributes गुणों की सही सूची को प्रिंट करता है, जब मैं ऐसा करने की कोशिश करता हूं। Model.get ("id") या अन्य किसी भी विशेषता, वे खाली के रूप में आते हैं। जाहिर है, यह तब मौजूद है जब मैं मॉडल उदाहरण पर विशेषताओं को कॉल करता हूं। – egidra