में ब्रांड्स का उपयोग कब करना चाहिए, मैं नॉकआउट में एक नौसिखिया हूं और मुझे कहना होगा कि ()
का उपयोग करने के बारे में मुझे अक्सर भ्रमित हो जाता है। जब आप ()
का उपयोग तब करेंगे जब आप ऐसा नहीं करेंगे क्योंकि फिलहाल मैं परीक्षण और त्रुटि कर रहा हूं, इसके बारे में कोई सामान्य टिप/चाल है। यदि बाध्यकारी त्रुटि फेंकता है या मानों को अद्यतन नहीं करता है तो मैं ()
हटा देता हूं।मुझे नॉकआउट
उत्तर
अवलोकनों का उपयोग करते समय या किसी अन्य विधि को निष्पादित करते समय आप ()
नॉकआउट में उपयोग करते हैं। नॉकआउट अवलोकन योग्य कार्य हैं, जो आप चाहते हैं उसे वापस करने के लिए आमंत्रित किए जाते हैं या आपको नए मान निर्दिष्ट करने की अनुमति देते हैं।
नॉकआउट में आप उस संपत्ति को मान निर्दिष्ट करने के लिए object.property(newValue)
को पुनर्प्राप्त करने के लिए object.property()
का उपयोग करते हैं।
नॉकआउट website पर दस्तावेज़ को चेकआउट करें, विशेष रूप से observables पर अनुभाग, जो आपको ()
का उपयोग करते समय आपको अवलोकनों को पूछताछ और लिखने का उपयोग करता है।
:
var myViewModel = {
personName: ko.observable('Bob'),
personAge: ko.observable(123)
};
के नमूदार वर्तमान मूल्य पढ़ने के लिए, बस कोई पैरामीटर के साथ नमूदार कहते हैं। इस उदाहरण में, myViewModel.personName() वापसी 'बॉब', और myViewModel.personAge() वापस आ जाएगी जाएगा 123.
नमूदार के लिए एक नया मूल्य लिखने के लिए, नमूदार फोन और एक के रूप में नए मान पास पैरामीटर। उदाहरण के लिए, को कॉल करना myViewModel.personName ('मैरी') नाम मान को 'मैरी' में बदल देगा।
मॉडल ऑब्जेक्ट पर एकाधिक अवलोकन योग्य गुणों को मान लिखने के लिए, आप चेनिंग सिंटैक्स का उपयोग कर सकते हैं। उदाहरण के लिए, myViewModel.personName। ('मैरी') व्यक्ति (50) नाम मूल्य के लिए 'मैरी' और 50 वर्ष की आयु मूल्य
नॉकआउट के interactive tutorial भी काफी अच्छा है बदल जाएगा और के माध्यम से जाने लायक है।
मूल रूप से जब भी आप एक अवलोकन मूल्य (सरणी या अन्यथा) के साथ काम कर रहे हों तो आपको मूल्य प्राप्त करने के लिए कोष्ठक का उपयोग करना चाहिए और मान सेट करना चाहिए।
var something = ko.obserbable();
something(5); //set value
console.log(something()); //get value: 5
कारण किया जा रहा है कि ज्यादातर जे एस कार्यान्वयन अभी तक संपत्तियों के लिए getters और setters का समर्थन नहीं करते, इसलिए observables इस तरह लागू किया गया इस सीमा से बचने के लिए।
मुझे लगता है कि मौजूदा उत्तरों भ्रम के एक बहुत ही महत्वपूर्ण बिंदु पर छोड़ देते हैं: data-bind
विशेषताएँ।
यह सच है कि जब आप जावास्क्रिप्ट में होते हैं तो आप माता-पिता का उपयोग करते हैं, और अवलोकन योग्य या सेटिंग सेट करते हैं। लेकिन जब आप data-bind="text: property"
लिख रहे हैं, तो आप अवलोकन के साथ काम करते समय भी माता-पिता छोड़ देते हैं।
संपादित
नीचे टिप्पणी, बाइंडिंग कि भाव, या observbles की पहुँच गुण हैं में बताया गया है, की आवश्यकता होती है कोष्ठक
visible: personName().length > 0
visible: person().Name().length > 0
visible: person().isVisible
ध्यान दें कि पिछले एक person
और isVisisble
दोनों observables हैं, लेकिन अंतिम संपत्ति माता-पिता का उपयोग नहीं करती है! इसका कारण यह है कि हम एक अवलोकन के बजाय बाध्यकारी के लिए एक मूल्य पारित करेंगे, और यह अद्यतन नहीं होगा।
- 1. मुझे नॉकआउट
- 2. नॉकआउट
- 3. नॉकआउट
- 4. नॉकआउट
- 5. नॉकआउट
- 6. नॉकआउट
- 7. नॉकआउट
- 8. नॉकआउट-सत्यापन
- 9. नॉकआउट व्यूमोडेल
- 10. नॉकआउट जेएस
- 11. नॉकआउट जेएस
- 12. नॉकआउट 1.3
- 13. नॉकआउट जेएस
- 14. नॉकआउट सत्यापन
- 15. नॉकआउट जेएस
- 16. नॉकआउट प्रमाणीकरण लोड
- 17. नॉकआउट गणना राशि
- 18. नॉकआउट जेएस मेमोरी लीक
- 19. नॉकआउट एमवीसी कार्ट नमूना
- 20. नॉकआउट जेएस ऑब्जेक्ट
- 21. नॉकआउट + Jquery मान्य
- 22. केंडो-नॉकआउट: विंडो
- 23. jquery क्लिक घटना नॉकआउट
- 24. नॉकआउट प्रमाणीकरण अक्षमता
- 25. नॉकआउट से एमवीसी 3
- 26. टैबलेट फोरच नॉकआउट
- 27. नॉकआउट जेएस: आईपैड
- 28. नॉकआउट व्यूमोडेल और requjs
- 29. नॉकआउट + कस्टम बाइंडिंग
- 30. नॉकआउट एक सरणी
अच्छा बिंदु, डेटा-बाइंड विशेषता के अंदर एक जावास्क्रिप्ट अभिव्यक्ति का उपयोग किया जाने वाला एकमात्र अपवाद है, जिस स्थिति में ब्रांड्स ** ** आवश्यक हैं, उदा। 'दृश्यमान: व्यक्तिनाम() लंबाई> 0' – benrwb
टिप्पणी आधारित वर्चुअल बाइंडिंग का उपयोग करते समय भी कोष्ठक की आवश्यकता होती है, जैसे:' '। मुझे समझ में नहीं आता कि यह मामला क्यों है, लेकिन 2.3.2 के रूप में, यह सच है। – x0n
एक अभिव्यक्ति में एक अवलोकन योग्य का उपयोग करने के एक और उदाहरण के लिए http://stackoverflow.com/a/11318720/1154642 देखें। – bryanbraun