Ich muss einige zusätzliche Text unter einer Datumsauswahl zeigen, wenn es erweitert wird, aber nicht für jede Datumsauswahl in meiner Anwendung.Benutzerdefinierte Eigenschaft in renderTpl
Ich überschreibe die Ext.picker.Date-Komponente und die RenderTpl -Eigenschaft zu ändern, um in den zusätzlichen HTML hinzuzufügen. Danach versuche ich, den neuen HTML-Code in einer if Bedingung zu wickeln, so dass es nur sichtbar ist, wenn eine boolean-Eigenschaft festgelegt wird, wenn die Komponente
Ext.define('overrides.picker.Date', {
override: 'Ext.picker.Date',
showExtra: false,
renderTpl: [
'....existing html for picker here...',
'<tpl if="showExtra">',
'extra picker text',
'</tpl>',
]
});
So Erstellen von Standard-showExtra falsch ist und dann war meine Idee, dies zu spezifizieren um wahr zu sein, wenn Sie die Datumsauswahl auf einer Seite verwenden.
items: [{
xtype: 'datefield',
value: this.effectiveDate,
showToday: false,
showExtra: true
},
Die Bedingung ist nie eingehalten werden, auch wenn ich showExtra geben Sie true über dem renderTpl Eigenschaft im Wert. Wie kann ich den Wert übergeben, damit die Bedingung erfüllt wird?
Danke für die Antwort. Die Eigenschaft wird jetzt in der Komponente festgelegt, scheint aber immer der Standardwert (false) zu sein. Der neue Wert, den ich über das renderData-Objekt übergebe, wird nicht festgelegt. Bitte überprüfen Sie die folgende Geige https://fiddle.sencha.com/#view/editor&fiddle/1la4 – grimmus
Sie legen das showDateLegend auf das Datumsfeld fest, möchten es aber in der Datumsauswahl verwenden. Dies sind zwei separate Komponenten. Sehen Sie sich die Quelle Ext.form.field.Date an. Es gibt eine createPicker() -Methode, die den Picker erstellt und alle Arten von Eigenschaften übergibt. Sie könnten diese Methode überschreiben – sofajazz
Ich aktualisierte meine Antwort. Sie müssen renderData nicht verwenden, wenn Sie renderData in der Überschreibung aktualisieren. – sofajazz