Ho seguito le estensioni GUI e gli esempi di avviso utilizzano _isEnabled
o isEnabled
, senza il carattere di sottolineatura. Entrambi sembrano funzionare per estendere o eventualmente sostituire la funzionalità esistente.Qual è la differenza tra _isEnabled e isEnabled in Anguilla?
isEnabled
Ad esempio, la classe PowerTools di base (che non sembra di "estendere" le funzionalità esistenti) ha:
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;
};
Uno strumento in grado di utilizzare questa classe di base e dichiarare. isValidSelection, per esempio:
PowerTools.Commands.CountItems.prototype.isValidSelection =
function (selection) { ... }
_isEnabled
Vedo che Anguilla utilizza ._isEnabled
per funzionalità esistenti (nella console di Chrome in numerosi punti del codice). Ad esempio, WhereUsed
ha:
Tridion.Cme.Commands.WhereUsed.prototype._isAvailable =
function WhereUsed$_isAvailable(selection) ...
Funzioni private?
Ho familiarità con un carattere di sottolineatura precedente che è una convenzione di denominazione per variabili private. _isEnabled e altre funzioni iniziano con un carattere di sottolineatura "privato?" Se è così, allora
- Come dovremmo estendere (aggiungere ulteriori funzionalità al codice esistente) queste funzioni?
- Come dovremmo sostituire (non è stato eseguito il codice esistente, ma i nostri vengono eseguiti come in un "override")?
sto assumendo lo stesso approccio vale per altre funzioni che iniziano con un trattino come _isAvailable
e _invoke
.
Buon punto su PowerTools 'isValidSelection. Per gestire la pipeline, basta impostarla su true/false? Vedo 'pipeline.stop = true;' nel sorgente .js. –
pipeline.stop = true; in effetti significa che non dovrebbe continuare ad altre estensioni o ai metodi di sottolineatura. Una sorta di "lo so meglio, smetto di cercare altre risposte" –