मैंने हाल ही में नॉकआउट.जेएस से एंगुलर.जेएस पर स्विच किया है, मुझे दोनों उपकरण पसंद हैं, लेकिन उनमें से प्रत्येक के "प्रतियोगी" पर अपने फायदे हैं।
और फिर एक उबाऊ शाम गिर गई, मैंने फैसला किया, बस मनोरंजन के लिए, मेरे एमवी * साधन को ढालना।
मैं वास्तव में रोलिंग फ्रेमवर्क की तरह नहीं हूं, मैं पुस्तकालयों को पसंद करता हूं, और कोणीय से मुझे मूल रूप से 2 चीजों की आवश्यकता है:
गुंजाइश - डेटा और इसकी निगरानी,
लागू करना - इस दायरे को डोम से बांधें।
इससे मैंने अपनी बाइक शुरू की, अंत में मेरे पास है:
गुंजाइश = alite। स्कोप ( ) ; - दायरा बनाएं
Alite। applyBindings ( गुंजाइश , डोम ) ; - डोम से बंधे
एक चर जोड़ें:
गुंजाइश। शीर्षक = 'हैलो' ;
और DOM में "बाइंड" करें:
< h1 data-bind = "text: title" > < / h1 >
< input type = "text" data-bind = "value: title" / >
एक उदाहरण:
plnkr.co/edit/nvDY1k?p=previewToDo उदाहरण:
plnkr.co/edit/FAcLlC?p=previewनिर्देश सामान्य कार्य हैं जिन्हें अनुप्रयोगबाइंडिंग डेटा-बाइंड तक पहुंचने पर कहा जाता है, उन्हें alite.directives में जोड़ें:
Alite। निर्देश । पाठ = कार्य ( तत्व , गुण , कार्यक्षेत्र ) {
var Attr = attrs। पाठ; // पैरामीटर नाम
गुंजाइश। $ घड़ी ( Attr , फ़ंक्शन ( मान ) { // परिवर्तनों की सदस्यता लें
तत्व। पाठ ( मूल्य ) ; // आउटपुट को मान (jQuery के माध्यम से)
} )
var value = गुंजाइश। $ eval ( attr ) ; // मान प्राप्त करें
तत्व। पाठ ( मूल्य ) ;
} ;
बाइक की सुरक्षा के लिए कुछ कारक:- कोणीय में, मैं हमेशा मॉड्यूल के साथ उपद्रव करना पसंद नहीं करता। (इसे नॉकआउट में पसंद किया गया था)
- डेटा-बाइंड क्यों? यदि कोई निर्देश नहीं है, तो पॉप अप करने के लिए एक त्रुटि के लिए, हालांकि यह आपकी पसंद के अनुसार किया जा सकता है। (नॉकआउट के समान। js)
- JQuery के बारे में: jQuery के बिना कोणीय और नॉकआउट काम करते हैं और विभिन्न प्रकार के ब्राउज़रों का समर्थन करते हैं, अर्थात्। उनके अंदर यह अनुकूलता है। लेकिन क्यों, यदि आप jQuery का उपयोग कर सकते हैं, तो आपको अभी भी इसे (लगभग) प्रत्येक प्रोजेक्ट से कनेक्ट करना होगा, टाइमकीपर के लिए, select2, आदि।
(एक ही कोणीय.यूआई को jquery की आवश्यकता होगी)। हालांकि यह नॉकआउट के लिए उदाहरण के लिए आवश्यक नहीं हो सकता है। जेएस + केडो-यूई बंडल। - "Angular.js के लिए कई तैयार निर्देश हैं!" कोणीय.जे के साथ कुछ हालिया परियोजनाओं से पता चला है कि कई तैयार निर्देश या तो फिट नहीं हैं या मौजूद नहीं हैं। नतीजतन, मुझे अभी भी उन्हें खुद करना था। इसलिए, तैयार निर्देशों के बिना एक समान बाइक (लेकिन उत्पाद संस्करण) कोणीय.जेएस से ज्यादा खराब नहीं होगा
निर्देश, हालांकि नॉकआउट में आप समान बना सकते हैं, वे बॉक्स से अलग हैं:
बाइंड क्लिक: डेटा-बाइंड = "क्लिक करें: on_click ()" - इंगित करें कि आपको क्या करने की आवश्यकता है, बजाय फ़ंक्शन को निर्दिष्ट करने के बजाय नॉकआउट में (कोणीय.जैस के समान)
बाइंड रिपीट: - स्वयं तत्व को ट्विस्ट करें, न कि इसकी सामग्री (कोणीय.जैस के समान)
"कर्नेल" (अभी के लिए) में केवल लगभग 200 लाइनें शामिल हैं, इसलिए इसे आसानी से अपने लिए काटा जा सकता है।
PS: यह सिर्फ एक बाइक प्रोटोटाइप है, इसलिए इसमें कुछ काम नहीं करेगा।
स्रोत कोड