Angular.js + Knockout.js

मैंने हाल ही में नॉकआउट.जेएस से एंगुलर.जेएस पर स्विच किया है, मुझे दोनों उपकरण पसंद हैं, लेकिन उनमें से प्रत्येक के "प्रतियोगी" पर अपने फायदे हैं।
और फिर एक उबाऊ शाम गिर गई, मैंने फैसला किया, बस मनोरंजन के लिए, मेरे एमवी * साधन को ढालना।

मैं वास्तव में रोलिंग फ्रेमवर्क की तरह नहीं हूं, मैं पुस्तकालयों को पसंद करता हूं, और कोणीय से मुझे मूल रूप से 2 चीजों की आवश्यकता है: गुंजाइश - डेटा और इसकी निगरानी, लागू करना - इस दायरे को डोम से बांधें।

इससे मैंने अपनी बाइक शुरू की, अंत में मेरे पास है:
गुंजाइश = alite। स्कोप ( ) ; - दायरा बनाएं
Alite। applyBindings ( गुंजाइश , डोम ) ; - डोम से बंधे

एक चर जोड़ें:
गुंजाइश। शीर्षक = 'हैलो' ;

और DOM में "बाइंड" करें:
< h1 data-bind = "text: title" > < / h1 >
< input type = "text" data-bind = "value: title" / >
एक उदाहरण:
plnkr.co/edit/nvDY1k?p=preview

ToDo उदाहरण:
plnkr.co/edit/FAcLlC?p=preview

निर्देश सामान्य कार्य हैं जिन्हें अनुप्रयोगबाइंडिंग डेटा-बाइंड तक पहुंचने पर कहा जाता है, उन्हें alite.directives में जोड़ें:
Alite। निर्देशपाठ = कार्य ( तत्व , गुण , कार्यक्षेत्र ) {
var Attr = attrs। पाठ; // पैरामीटर नाम
गुंजाइश। $ घड़ी ( Attr , फ़ंक्शन ( मान ) { // परिवर्तनों की सदस्यता लें
तत्व। पाठ ( मूल्य ) ; // आउटपुट को मान (jQuery के माध्यम से)
} )

var value = गुंजाइश। $ eval ( attr ) ; // मान प्राप्त करें
तत्व। पाठ ( मूल्य ) ;
} ;

बाइक की सुरक्षा के लिए कुछ कारक:

निर्देश, हालांकि नॉकआउट में आप समान बना सकते हैं, वे बॉक्स से अलग हैं:
बाइंड क्लिक: डेटा-बाइंड = "क्लिक करें: on_click ()" - इंगित करें कि आपको क्या करने की आवश्यकता है, बजाय फ़ंक्शन को निर्दिष्ट करने के बजाय नॉकआउट में (कोणीय.जैस के समान)
बाइंड रिपीट: - स्वयं तत्व को ट्विस्ट करें, न कि इसकी सामग्री (कोणीय.जैस के समान)

"कर्नेल" (अभी के लिए) में केवल लगभग 200 लाइनें शामिल हैं, इसलिए इसे आसानी से अपने लिए काटा जा सकता है।

PS: यह सिर्फ एक बाइक प्रोटोटाइप है, इसलिए इसमें कुछ काम नहीं करेगा।
स्रोत कोड

Source: https://habr.com/ru/post/In184168/


All Articles