В моем представлении XML для одного из полей я хочу отобразить «Да», если значение из частей модели равно «S» или «P», а для остальных значений нужно отобразить «Нет».
text = "{= ${order>/parts} === 'S' ? "Yes" : ${order>/parts} === 'P' ? "Yes" : "No} }"/>
Также как писать -
if ${order>/parts}
имеет "S" AND ${order>/stock}
имеет "A", затем отобразить Да еще Нет в аналогичном понятии, как указано выше?
Я попробовал этот небольшой пример, и он отлично работает. Возможно, потому, что вы используете двойные кавычки как при открытии свойства текста, так и при значениях («Да» и «Нет»). Попробуйте заменить "
на '
в своих значениях. Если это не сработает, вы должны проверить, не является ли {order>/parts}
неопределенным.
Вид
<Input value = "{= ${test1} === 'S' ? 'Yes' : ${test1} === 'P' ? 'Yes' : 'No'}" />
<Input value = "{= ${test1} === 'S' ? ${test2} === 'P' ? 'Yes' : 'No' : 'No' }" />
или
<Input value = "{= ${test1} === 'S' || ${test1} === 'P' ? 'Yes' : 'No'}" />
<Input value = "{= ${test1} === 'S' && ${test2} === 'P' ? 'Yes' : 'No'}"/>
Контроллер
onInit: function() {
var oModel = new sap.ui.model.json.JSONModel({
test1: "S",
test2: "P"
});
var bindingContext = new sap.ui.model.Context();
bindingContext.oModel = oModel;
bindingContext.sPath = "/";
this.getView().setBindingContext(bindingContext);
this.getView().setModel(oModel);
}
Я также добавил случай AND. Надеюсь это поможет.
Большое спасибо @Matthijs.
Вы должны прочитать о форматеры, это именно то, что вам нужно
Согласен. Но в этом случае существующий код присутствовал таким образом, и мне пришлось быстро просто настроить его для еще одного условия.
Надеюсь, что это поможет вам
<Input value = "{= (${order>/parts} === 'S' || ${order>/parts} === 'P') ? 'Yes' : 'No' }" />
<Input value = "{= (${order>/parts} === 'S' && ${order>/stock} === 'A') ? 'Yes' : 'No' }" />
да, он работает с 'вместо ". Также, есть ли предложения по случаю И?