दिलचस्प पोस्ट
टॉमकेट सर्वलेट में क्लाइंट डिस्कनेक्ट का पता लगा रहा है? कॉमा ऑपरेटर कब उपयोगी है? स्ट्रिंग में स्ट्रिंग की घटना को कैसे गणना करना है? के लिए नियमित अभिव्यक्ति चरित्र का आकार ('ए') सी / सी ++ में एक int पर आधारित एकाधिक संख्याबद्ध चर बनाएँ एंड्रॉइड: वर्टिकल व्यूपेजर SQL सर्वर में पिछले महीने के रिकॉर्ड प्राप्त करें AngularJS: एक सेवा गुणों को बाध्य करने का सही तरीका jQuery में ऑनहाइड () प्रकार इवेंट स्ट्रिंग को PHP में पूर्णांक बदलने का सबसे तेज़ तरीका मैं जावास्क्रिप्ट को कैसे रोक सकता / सकती हूं? क्या पीडीबीबॉक्स में पाठ को सही करना संभव है? Static_cast <> और C शैली कास्टिंग के बीच अंतर क्या है? उथले क्लोन और विरल चेकआउट में सेट करें Git submodule?

मैं बैकबोन में एक मॉडल कैसे ला सकता हूं?

मेरे पास बैकबोन में Clock मॉडल है:

 var Clock = Backbone.Model.extend({}); 

मैं उस का एक उदाहरण प्राप्त करने की कोशिश कर रहा हूं जिसके पास /clocks/123 से नवीनतम जानकारी है मैंने कोशिश की है कुछ चीजें:

एक "वर्ग" -लिवल विधि

 Clock.fetch(123) // TypeError: Object function (){ ... } has no method 'fetch' 

एक उदाहरण बना रहा है और उसके बाद उसे fetch पर कॉल करें:

 c = new Clock({id: 123}) c.fetch() // Error: A 'url' property or function must be specified 

संग्रह

मैंने एक AllClocks संग्रह संसाधन बनाने की कोशिश की (भले ही मुझे पृष्ठ पर ऐसी कोई बात नहीं है):

 var AllClocks = Backbone.Collection.extend({ model: Clock, url: '/clocks/' }); var allClocks = new AllClocks(); allClocks.fetch(123); // returns everything from /clocks/ 

मैं केवल एक एपीआई समर्थित घड़ी कैसे प्राप्त करूं?

वेब के समाधान से एकत्रित समाधान "मैं बैकबोन में एक मॉडल कैसे ला सकता हूं?"

आपका दूसरा दृष्टिकोण यह है कि मैंने जिस तरीके से इस्तेमाल किया है अपने क्लॉक मॉडल में निम्नलिखित को जोड़ने का प्रयास करें:

 url : function() { var base = 'clocks'; if (this.isNew()) return base; return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + this.id; }, 

यह दृष्टिकोण मानता है कि आपने अपने यूआरएल में हैशबैंग के साथ नियंत्रकों को लागू किया है, जैसे, http://www.mydomain.com/#clocks/123 , लेकिन यह तब भी काम करना चाहिए जब तक आपके पास अभी तक नहीं है।

मॉडल में urlRoot को निर्दिष्ट करने का प्रयास करें:

डॉक्स से:

 var Book = Backbone.Model.extend({urlRoot : '/books'}); var solaris = new Book({id: "1083-lem-solaris"}); solaris.fetch(); 

मैं व्यक्तिगत रूप से सुझाता हूं, मॉडल # यूआरएल विधि प्रलेखन के बाद

 model = new Model(id: 1) view = new View(model: model) collection = new Collection([model]) model.fetch() 

अपने संग्रह में संग्रह यूआरएल को जोड़ने के लिए याद रखना:

 url: "/models" 

और अपने दृश्य के प्रारंभिक कार्य में करें:

 this.model.bind("change", this.render) 

इस तरह रीढ़ की हड्डी इस यूआरएल का उपयोग कर एक एजेक्स अनुरोध करेगी:

 "/models/1" 

आपके मॉडल को अपडेट किया जाएगा और संग्रह # यूआरएल या मॉडल # urlRoot को संशोधित किए बिना, दृश्य प्रदान किया जाएगा

ध्यान दें: खेद है कि यह उदाहरण कॉफी स्क्रिप्ट में आया था, लेकिन आप इसे आसानी से अनुवाद कर सकते हैं जेएस स्टेटमेंट्स को जोड़कर

 var Person = Backbone.Model.extend({urlRoot : '/person/details'}); var myName = new Person({id: "12345"}); myName.fetch(); 

नतीजतन आप पर एक अजाक्स अनुरोध करते हैं

 URL http://[domainName]/person/details/id 

और आपके पास JSON प्रतिक्रिया वापस है

Enjoiiii !!!

… और ऐसा करें यदि आप मॉडल urlRoot पर अनुगामी स्लैश नहीं चाहते हैं:

  url : function() { return this.urlRoot + this.id; }, 

आपको संभवतया ऑब्जेक्ट गर्त को एक संग्रह तक पहुंचना चाहिए और इसे संग्रह में हर समय रखना चाहिए। यह इस तरह से करना चाहिये:

 var AllClocks = Backbone.Collection.extend({ model: Clock, url: '/clocks/' }); var allClocks = new AllClocks(); my_clock = allClocks.add({id: 123}); my_clock.fetch() 

मैं रिक्त यूआरएल का उपयोग करना चाहता हूं, लेकिन मुझे समझ में नहीं आ रहा था कि आधार यूआरएल में 'पोस्टआईडी' क्यों नहीं जोड़ा जा सकता।

 var PostModel = Backbone.Model.extend({ urlRoot: 'getBlogPost', defaults: { postTitle: "defaultTitle", postTime: "1970-01-01", postContent: "defaultContent", postAuthor: "anonymous" } }); var post = new PostModel({ postId: 1 }); alert(post.url()); 

तो मुझे पता है कि जब मैं 'idAttribute' को 'PostId' मॉडल में सेट करता हूं तो मुझे सही यूआरएल मिल सकता है। इस तरह:

 var PostModel = Backbone.Model.extend({ idAttribute: 'postId', urlRoot: 'getBlogPost', defaults: { postTitle: "defaultTitle", postTime: "1970-01-01", postContent: "defaultContent", postAuthor: "anonymous" } });