मैं जीयूआई एक्सटेंशन का पालन कर रहा हूं और नोटिस उदाहरण _isEnabled
या isEnabled
का उपयोग अंडरस्कोर के बिना करते हैं। दोनों मौजूदा कार्यक्षमता को बढ़ाने या संभवतः बदलने के लिए काम करते प्रतीत होते हैं।_isEnabled के बीच क्या अंतर है और एंगुइला में सक्षम है?
IsEnabled
उदाहरण के लिए, PowerTools आधार वर्ग (जो मौजूदा कार्यक्षमता "विस्तार" प्रतीत नहीं होता है) है:
PowerTools.BaseCommand.prototype.isEnabled = function(selection, pipeline)
{
var p = this.properties;
if (!p.initialized)
{
this.initialize();
}
if (!this.isToolConfigured())
{
return false;
}
if (this.isValidSelection)
{
return this.isValidSelection(selection, pipeline);
}
return true;
};
एक उपकरण इस आधार वर्ग का उपयोग करें और घोषणा कर सकते हैं। isValidSelection, उदाहरण के लिए:
PowerTools.Commands.CountItems.prototype.isValidSelection =
function (selection) { ... }
_isEnabled
मुझे लगता है कि एंगुइला मौजूदा कार्यक्षमता के लिए ._isEnabled
का उपयोग करता है (कोड में कई स्थानों पर क्रोम के कंसोल में)। उदाहरण के लिए, WhereUsed
है:
Tridion.Cme.Commands.WhereUsed.prototype._isAvailable =
function WhereUsed$_isAvailable(selection) ...
निजी कार्यों?
मैं पूर्ववर्ती अंडरस्कोर से निजी चर के लिए एक नामकरण सम्मेलन होने से परिचित हूं। क्या _isEnabled और अन्य फ़ंक्शन जो अंडरस्कोर "निजी" से शुरू होते हैं? यदि ऐसा है तो
- हम कैसे का विस्तार करना चाहिए इन कार्यों (मौजूदा कोड में अतिरिक्त कार्यक्षमता जोड़ने)?
- हमें को प्रतिस्थापित करना चाहिए (मौजूदा कोड चलाने के लिए नहीं है, लेकिन हमारे "ओवरराइड" के बजाय हमारे चलते हैं)?
मैं एक ही दृष्टिकोण संभालने कर रहा हूँ अन्य कार्यों है कि एक _isAvailable
जैसे, और _invoke
अंडरस्कोर से शुरू करने के लिए लागू होता है।
पावरटूल्स पर अच्छा बिंदु 'वैलिड चयन है। पाइपलाइन का प्रबंधन करने के लिए, क्या हम इसे सही/गलत पर सेट करते हैं? मैं .js स्रोत में 'pipeline.stop = true;' देखता हूं। –
पाइपलाइन.स्टॉप = सत्य; वास्तव में इसका मतलब है कि इसे अन्य एक्सटेंशन या अंडरस्कोर विधियों को जारी नहीं रखना चाहिए। "मैं सबसे अच्छा जानता हूं, अन्य उत्तरों की तलाश करना बंद करें" का क्रमबद्ध करें –