我的UI5應用程序和一個簡單的表單有問題。如探索應用程序的示例中所示。XML片段事件綁定到控制器不工作
這種情況下,按下編輯將替換片段的其他SimpleForm(控制器中的代碼隱藏)的內容。
我也這麼做;唯一的區別是我只是用存儲在XML片段中的控件替換SimpleForm的內容。
現在我有一個按鈕,該單擊事件應綁定到基礎控制器。但是當你在代碼隱藏中這樣做時,控制器上的事件不再被解僱。它在我的xml視圖定義文件中使用片段時起作用,但現在不行。
controllerModelPropertyChanged(oEvent: sap.ui.base.Event) {
let cdata = (oEvent.getSource() as any).getData() as agenttemplatesdetailcontroller;
let p = this.byId("form") as sap.ui.layout.form.SimpleForm;
for(let c of p.getContent())
c.destroy();
p.removeAllContent();
let f = sap.ui.xmlfragment("ifm.datalink.linerecorder.ams.frontend.view.fragments.agentTemplates."+ (cdata.edit ? "AgentTemplateDetailsEdit" : "AgentTemplateDetailsDisplay")) as sap.ui.core.Control[];
f.forEach((v) => { p.addContent(v); });
}
添加控件時綁定的事件對控制器沒有綁定嗎?我必須手動綁定它們嗎?
編輯:
顯示片段:
<core:FragmentDefinition
xmlns="sap.m"
xmlns:core="sap.ui.core"
xmlns:u="sap.ui.unified">
<Label text="{i18n>templates.details.name}"/>
<Text text="{template>/Name}" enabled="{form>/enabled}"/>
<Label text="{i18n>templates.details.description}"/>
<Text text="{template>/Description}" editable="{form>/enabled}"/>
<List headerText="{i18n>templates.details.versionsTitle}" items="{template>/Versions}">
<CustomListItem>
<HBox>
<Label text="{template>Version/Major}.{template>Version/Minor}.{template>Version/Build}"/>
<Label text=" ({parts: [{path: 'template>CreationDate', type: 'sap.ui.model.odata.type.Date'}, {path: 'i18n>global.dateformat', type: 'sap.ui.model.type.String'}], formatter: '.odatadateformatter'})"/>
<Label text="{ams>Guarantor/username}"/>
</HBox>
</CustomListItem>
</List>
</core:FragmentDefinition>
編輯片段:
<core:FragmentDefinition
xmlns="sap.m"
xmlns:core="sap.ui.core"
xmlns:u="sap.ui.unified">
<Label text="Name"/>
<Input value="{template>/Name}" enabled="{form>/enabled}"/>
<Label text="Description"/>
<TextArea value="{template>/Description}" editable="{form>/enabled}"/>
<Label text="Upload new Version"/>
<u:FileUploader id="fileUploader" name="MyFileUpload" uploadUrl="http://localhost:13917/api/fileupload/uploadfile" tooltip="Upload your file to the local server" uploadComplete="handleUploadComplete"/>
<Button text="Upload File" press="AddNewTemplateVersion"/>
<List headerText="{i18n>templates.details.versionsTitle}" items="{template>/Versions}">
<CustomListItem>
<HBox>
<Label text="{template>Version/Major}.{template>Version/Minor}.{template>Version/Build}"/>
<Label text=" ({parts: [{path: 'template>CreationDate', type: 'sap.ui.model.odata.type.Date'}, {path: 'i18n>global.dateformat', type: 'sap.ui.model.type.String'}],
formatter: '.odatadateformatter'})"/>
<!--<Label text="{ams>Guarantor/username}"/>-->
</HBox>
</CustomListItem>
</List>
</core:FragmentDefinition>
查看:
<mvc:View
controllerName="ifm.datalink.linerecorder.ams.frontend.controller.agentTemplates.AgentTemplatesDetail"
xmlns="sap.m"
xmlns:core="sap.ui.core"
xmlns:commons="sap.ui.commons"
xmlns:f="sap.ui.layout.form"
xmlns:l="sap.ui.layout"
xmlns:mvc="sap.ui.core.mvc">
<f:SimpleForm
class="lra5form"
minWidth="500"
maxContainerCols="2"
layout="ResponsiveGridLayout"
title="{i18n>templates.details.title}"
editable="{controller>/edit}"
labelSpanL="3"
labelSpanM="3"
emptySpanL="4"
emptySpanM="4"
columnsL="1"
columnsM="1"
id="form">
<f:toolbar>
<Toolbar>
<Button text="{i18n>templates.details.edit}" icon="sap-icon://edit" enabled="{= !${controller>/edit}}" press="onEditPressed" />
<Button text="{i18n>templates.details.delete}" icon="sap-icon://delete" press="onDelete" visible="{= !${controller>/edit}}" />
<ToolbarSpacer/>
<Button text="{i18n>global.accept}" icon="sap-icon://accept" press="onAcceptClicked" visible="{controller>/edit}" enabled="{controller>/changed}"/>
<Button text="{i18n>global.cancel}" icon="sap-icon://cancel" press="onCancelClicked" visible="{controller>/edit}" />
</Toolbar>
</f:toolbar>
<f:content>
<core:Fragment fragmentName="ifm.datalink.linerecorder.ams.frontend.view.fragments.agentTemplates.AgentTemplateDetailsDisplay" type="XML"/>
</f:content>
</f:SimpleForm>
</mvc:View>
,你引用片段+片段代碼可以共享視圖的XML聲明? –
你在這裏,謝謝你的幫助。我沒有更改我的控制器上的事件處理程序的名稱。 –
我沒有看到按鈕=「controllerModelPropertyChanged」事件,哪一個應該調用該函數? –