2015-03-09 2 views
1

В моей state модели у меня есть:Binding не работает для свойства «класса»

... 
"elementX": {valueState:"Success", valueStateText:"Great!" }, 
... 

и в XLMView я использую Text элемент:

<Text text="{state>/elementX/valueStateText}" class="Success"/> 

В моем файле style.css у меня есть :

.Success{ 
    color: #008000; 
} 

Все работает нормально, и я вижу зеленый текст!

Но если связывать class с valueState Собственостью

<Text text="{state>/elementX/valueStateText}" class="{state>/elementX/valueState}"/> 

Я вижу текст черного цвета (не зеленый) ... Почему?

Использование другого компонента в качестве объекта Satus не имеют хороший стиль в моей форме: enter image description here

+0

Возможная Дубликат [Выражение связывания в управлении SAP UI5 с "класса" атрибут] (https://stackoverflow.com/questions/42221962/expression-binding-in-sap- ui5-контроль-с-класса атрибут) – boghyon

ответ

1

К сожалению, свойство класса не Привязываемое - это даже не недвижимость.

В любом случае обходное решение для достижения того, что вы планируете, легко: вы должны использовать форматировщик на любом свойстве и в том, что форматировщик добавляет/удаляет класс с помощью метода addStyleClass/removeStyleClass.

<Text text="{ parts: [ 'state>/elementX/valueStateText', 'state>/elementX/valueState' ], formatter: 'my.static.Formatter.format' }" /> 

my.static.Formatter.format = function(sValueStateText, sValueStateClass) { 
    // this refers to the control in a static formatter 
    // set the class on the control via code 
    if (sValueStateClass) { 
    this.addStyleClass(sValueStateClass); 
    } 

    // statically return the desired text to make it appear in the text property 
    return sValueStateText; 
}; 

BR Chris

Смежные вопросы