नॉकआउटJS प्रलेखन के एक बहुत ही सरसरी वाचन के अनुसार, एक बहुत ही बुनियादी नॉकआउट दृश्य को शुरू करना निम्नलिखित की तरह दिखता है
// This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI
function AppViewModel() {
this.firstName = "Bert";
this.lastName = "Bertington";
}
// Activates knockout.js
ko.applyBindings(new AppViewModel());
यानी - आप एक ऑब्जेक्ट के रूप में उपयोग किए जाने के लिए एक जावास्क्रिप्ट फ़ंक्शन बनाते हैं, इससे किसी ऑब्जेक्ट को तुरंत निकालते हैं, और फिर उस ऑब्जेक्ट को ko.applyBindings
ग्लोबल नॉकआउट ऑब्जेक्ट ( ko
) की विधि में पास करते हैं
हालाँकि, Magento 2 में, यदि आप एक ग्रिड यूआई के साथ एक बैकएंड पेज लोड करते हैं, तो Magento js/core/app.js
NeedJJ मॉड्यूल को इनिशियलाइज़ करेगा
/**
* Copyright © 2016 Magento. All rights reserved.
* See COPYING.txt for license details.
*/
define([
'./renderer/types',
'./renderer/layout',
'Magento_Ui/js/lib/ko/initialize'
], function (types, layout) {
'use strict';
return function (data) {
types.set(data.types);
layout(data.components);
};
});
यह मॉड्यूल, बदले में, Magento_Ui/js/lib/ko/initialize
मॉड्यूल को लोड करता है, जो कि मैगेंटो के नॉकआउट जेएस के उपयोग को शुरू करने के लिए प्रकट होता है। हालाँकि, यदि आप इनिशियलाइज़ मॉड्यूल के स्रोत को देखते हैं।
define([
'ko',
'./template/engine',
'knockoutjs/knockout-repeat',
'knockoutjs/knockout-fast-foreach',
'knockoutjs/knockout-es5',
'./bind/scope',
'./bind/staticChecked',
'./bind/datepicker',
'./bind/outer_click',
'./bind/keyboard',
'./bind/optgroup',
'./bind/fadeVisible',
'./bind/mage-init',
'./bind/after-render',
'./bind/i18n',
'./bind/collapsible',
'./bind/autoselect',
'./extender/observable_array',
'./extender/bound-nodes'
], function (ko, templateEngine) {
'use strict';
ko.setTemplateEngine(templateEngine);
ko.applyBindings();
});
आप Magento के ko.applyBindings();
ऑब्जेक्ट को बिना व्यू ऑब्जेक्ट के कहते हैं । इसका कोई मतलब नहीं है, और मुझे यकीन नहीं है कि अगर यह नॉकआउट की मेरी सीमित समझ है, या मैगेंटो यहाँ कुछ कस्टम / अजीब कर रहा है।
क्या यह वह जगह है जहाँ Magento वास्तव में नॉकआउट बाइंडिंग लागू करता है? या कहीं और ऐसा होता है? या Magento नॉकआउट कोड को अवरोधन और कहीं और संसाधित करने के लिए कुछ मुश्किल कर रहा है?