Mengikat dalam Kawalan dengan Atribut "kelas" - Penyelesaian dengan Data Tersuai
Soalan ini menangani cabaran untuk menggunakan warna secara dinamik pada nilai dalam kawalan Teks SAP.m berdasarkan nilai Boolean mereka. Walaupun kod XML berikut kelihatan logik, ia gagal mengubah kelas kawalan:
<code class="xml"><Text class="{= ${HintTable>IS_ENABLED} === 'TRUE' ? 'greenTextColor' : redTextColor'}" text="{HintTable>IS_ENABLED}" /></code>
UI5 tidak membenarkan pengikatan kelas langsung dalam paparan XML. Walau bagaimanapun, penyelesaian wujud menggunakan data tersuai:
Tambah Data Tersuai dengan Set writeToDom:
Sertakan elemen data tersuai dalam kawalan anda:
<code class="xml"><ControlXYZ class="myControl"> <customData> <core:CustomData xmlns:core="sap.ui.core" writeToDom="{= expression }" key="green" value="" /> </customData> </ControlXYZ></code>
Takrifkan Pemilih CSS:
Tambahkan pemilih yang sepadan dalam CSS anda:
<code class="css">.myApp .sapControlXYZ.myControl[data-green] { /* ... */ }</code>
Ini akan menambah data-hijau kepada elemen HTML kawalan berdasarkan ungkapan yang mengikat dalam writeToDom. Penyemak imbas kemudiannya boleh menukar warna dengan sewajarnya.
Contoh:
<code class="xml"><Text class="myControl" text="{value}" > <customData> <core:CustomData xmlns:core="sap.ui.core" writeToDom="{= ${value} === 'TRUE' }" key="green" value="" /> </customData> </Text></code>
<code class="css">.myApp .sapText.myControl[data-green] { color: green; } .myApp .sapText.myControl:not([data-green]) { color: red; }</code>
Awas:
SAP mengesyorkan agar tidak menggunakan CSS tersuai, terutamanya untuk kawalan dengan warna atau format yang dipratentukan. Menyesuaikan gaya boleh memberi kesan kepada konsistensi apl dan meningkatkan usaha penyelenggaraan. Berunding dengan pihak berkepentingan sebelum mengubah suai gaya.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Warna Secara Dinamik pada Kawalan Teks SAP.m Berdasarkan Nilai Boolean?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!