Sapui5 SAP UI5:无法在xml中绑定控制器变量
单击要更改变量的按钮:Sapui5 SAP UI5:无法在xml中绑定控制器变量,sapui5,Sapui5,单击要更改变量的按钮: <f:content> <Button icon="sap-icon://edit" press="editClick" type="Transparent"></Button> </f:content> 看起来你什么都没试过,但我会尽力引导你: 您不能简单地在控制器中声明一个变量,然后在视图中使用它。UI5不是这样工作的。而是创建一个模型并将其绑定到视图。我还为我的模型命名,在本例中为“视图”: 然后在你的视图
<f:content>
<Button icon="sap-icon://edit" press="editClick" type="Transparent"></Button>
</f:content>
看起来你什么都没试过,但我会尽力引导你: 您不能简单地在控制器中声明一个变量,然后在视图中使用它。UI5不是这样工作的。而是创建一个模型并将其绑定到视图。我还为我的模型命名,在本例中为“视图”: 然后在你的视图中使用它。确保在绑定中使用模型的名称(
“视图”
)。如果您想做的不仅仅是简单地使用原始值(例如,否定它),您必须使用。您还必须使用以/
开头的绝对路径:
<form:SimpleForm id="SimpleFormDisplayColumn_oneGroup">
<form:content>
<Label text="{i18n>contextofusage}"/>
<Text text="{contextofusagetext}" visible="{= !${view>/isInfoEditable} }"/>
<Input type="Text" visible="{view>/isInfoEditable}" value="{contextofusagetext}"></Input>
</form:content>
</form:SimpleForm>
我强烈建议大家阅读UI5的基础知识。您的方法看起来更像Vue.js,但UI5有自己的范例。您似乎什么都没有尝试过,但我将尝试指导您: 您不能简单地在控制器中声明一个变量,然后在视图中使用它。UI5不是这样工作的。而是创建一个模型并将其绑定到视图。我还为我的模型命名,在本例中为“视图”: 然后在你的视图中使用它。确保在绑定中使用模型的名称(
“视图”
)。如果您想做的不仅仅是简单地使用原始值(例如,否定它),您必须使用。您还必须使用以/
开头的绝对路径:
<form:SimpleForm id="SimpleFormDisplayColumn_oneGroup">
<form:content>
<Label text="{i18n>contextofusage}"/>
<Text text="{contextofusagetext}" visible="{= !${view>/isInfoEditable} }"/>
<Input type="Text" visible="{view>/isInfoEditable}" value="{contextofusagetext}"></Input>
</form:content>
</form:SimpleForm>
我强烈建议大家阅读UI5的基础知识。您的方法看起来更像Vue.js,但UI5有自己的范例。谢谢Marc。我最近开始学习UI5。因为我已经研究过Angular,所以我假设数据绑定在UI5中也可以以同样的方式工作。但我错了,谢谢你,马克。我最近开始学习UI5。因为我已经研究过Angular,所以我假设数据绑定在UI5中也可以以同样的方式工作。但我错了。
onInit: function() {
var oViewModel = new sap.ui.model.json.JSONModel({
isInfoEditable: false
});
this.getView().setModel(oViewModel, "view");
}
<form:SimpleForm id="SimpleFormDisplayColumn_oneGroup">
<form:content>
<Label text="{i18n>contextofusage}"/>
<Text text="{contextofusagetext}" visible="{= !${view>/isInfoEditable} }"/>
<Input type="Text" visible="{view>/isInfoEditable}" value="{contextofusagetext}"></Input>
</form:content>
</form:SimpleForm>
editClick: function (oEvent) {
var oViewModel = this.getView().getModel("view");
var bIsEditable = oViewModel.getProperty("/isInfoEditable");
// negate the current value and set it as the new value
oViewModel.setProperty("/isInfoEditable", !bIsEditable);
}