从SAP UI5中的Fragment字段读取值

时间:2018-04-01 22:36:52

标签: sapui5

我想读取下面控制器中片段输入字段中输入的值是我的片段和控制器方法。

<core:FragmentDefinition xmlns:core="sap.ui.core"
xmlns:form="sap.ui.layout.form"
xmlns:l="sap.ui.layout"
xmlns="sap.m" >
<Dialog
    id="idSettings"
    draggable="true"
    title="{i18n>Settings_Title}" >
    <content>
        <form:SimpleForm
            id="idSettings_Form"
            backgroundDesign="Transparent"
            editable="true" >
            <form:content>
                <Label text="{i18n>Settings_DeliveryStatus}" />
                <Input
                    id="idSettings_storeId" />
            </form:content>
        </form:SimpleForm>
    </content>

    <buttons>
        <Button
            text="SAVE"
            press="onSettingsSaveBtn" />
        <Button
            text="CANCEL"
            press="onSettingsCancelBtn" />
    </buttons>
</Dialog>

我尝试过以下选项,但没有工作。

1)********************************************* ********

var fragmentId = this.getView().createId("webapp.ZSO_ES4.viewFragments.Settings");
var tab = sap.ui.core.Fragment.byId(fragmentId, "idSettings_storeId");

2)********************************************* ********

var user = sap.ui.core.Fragment.byId("webapp.ZSO_ES4.viewFragments.Settings", "idSettings_storeId").getValue();

1 个答案:

答案 0 :(得分:0)

您的输入应具有绑定到JSON模型的值属性

 <Input value="{json>name}"/>

然后在您的控制器中,您需要实例化此JSON模型

sap.ui.define([
    "sap/ui/model/json/JSONModel",
], function(JSONModel) {
    return sap.ui.controller("INSERT CONTROLLER NAME HERE", {
        onInit: function() {
            var oJSONModel = new JSONModel({
                name: ""
            });
            this.getView().setModel(oJSONModel, "json");
    },

设置完成后,您可以使用

访问该值
this.getView().getModel("json").getProperty("/name");

这被称为MVC ...我建议阅读它。