#salesforce #salesforce-lightning #lwc
#salesforce #salesforce-lightning #lwc
Вопрос:
Я пытаюсь получить количество символов и на этой основе хочу изменить цвет шрифта.
Я пробовал, queryselector()
но он не работает:
handleChange(event) {
if( this.charCount > 100){
let textcolor = this.template.queryselector("lightning-input-rich-text");
textcolor.getformat({color:"red"});
}
}
Я также пробовал с:
handleChange(event) {
if( this.charCount > 100){
textcolor = this.template.queryselector('[data-id="summary"]');
if(textcolor)
this.template.querySelector('[data-
id="summarytextcolor"]').className='summarytext';
}
}
Вот мой CSS:
.summarytext {color: #ff0000;}
И вот мой код lightning, в котором я взял поле форматированного текста, где при изменении мне нужно указать количество символов:
<lightning-input-rich-text
data-id="summary"
label={label.Summary}
formats={richTextformats}
label-visible
valid={richTextValidity}
message-when-bad-input={richTextErrorMessage}
class="slds-form-element slds-form-element_stacked summarytext"
onchange={handleChange}
value={richTextValue}
style=" font-weight: normal;">
</lightning-input-rich-text>
Вот ошибка, которую я получаю:
[NoErrorObjectAvailable] Script error. a()@https://static.lightning.force.com/cs10/auraFW/javascript/7p9HLMpgnV2GO9MqZhXGUw/aura_prod.js:948:169 {anonymous}()@https://static.lightning.force.com/cs10/auraFW/javascript/7p9HLMpgnV2GO9MqZhXGUw/aura_prod.js:948:362 bt.dispatchEvent()@https://static.lightning.force.com/cs10/auraFW/javascript/7p9HLMpgnV2GO9MqZhXGUw/aura_prod.js:12:12146 bt.dispatchChangeEvent()@https://customization-velocity-2311-dev-ed.lightning.force.com/components/interop/inputRichText.js:2:28144 eval()@https://customization-velocity-2311-dev-ed.lightning.force.com/components/interop/inputRichText.js:2:20578 e.l.emit()@https://customization-velocity-2311-dev-ed.lightning.force.com/components/lightning/quillLib.js:2:142032 e.value()@https://customization-velocity-2311-dev-ed.lightning.force.com/components/lightning/quillLib.js:2:33139
В чем проблема и как я могу ее исправить?
Ответ №1:
Вы должны иметь возможность установить его с помощью ванильного javascript.
handleChange(event) {
this.loading = true;
if(this.charCount > 100){
var warn = richTextValue.fontcolor("Red");
this.richTextValue = warn;
}
this.loading = false;
}
Я добавил переменную «загрузка»; просто убедитесь, что форматированный текст ввода заключен в a <template if:false={loading}>
, чтобы цвет шрифта отображался повторно.