未捕获的错误(setValue):不得在读取属性之前更改属性

时间:2019-02-22 04:55:11

标签: sapui5

当我尝试在此输入具有绑定前的输入框上输入值时收到错误:

<Input id="Dscription" value="{Model>Dscription}" />

对于我的控制器,我没有定义任何模型。

    onInit: function () {  
        //var oForm = this.getView().byId("itemMasterForm");   
        //oForm.bindElement("Model>/Item(ItemCode='A0001')");


        this.oRouter = sap.ui.core.UIComponent.getRouterFor(this);  
    }

我在 onInit 中删除了bindElement并将其放在 _handleValueHelpClose 函数中。此功能用于在用户尝试搜索ItemCode时选择数据。

视图:itemMaster.view.xml

                            <Input
                                id="ItemCode"
                                type="Text"
                                value="{Model>ItemCode}"
                                showSuggestion="true"
                                showValueHelp="true"
                                valueHelpRequest="handleValueHelp"
                                suggestionItems="{Model>/Item}" >
                                <suggestionItems>
                                    <core:ListItem text="{Model>ItemCode}" additionalText="{Model>Dscription}" />
                                </suggestionItems>
                            </Input>

控制器itemMaster.controller.js:

    _handleValueHelpClose : function (evt) {
        var oSelectedItem = evt.getParameter("selectedItem");

        if (oSelectedItem) {
            var productInput = this.byId(this.inputId); 
           //productInput.setValue(oSelectedItem.getTitle());

            var oForm = this.getView().byId("itemMasterForm"); 
            this.getView().byId("btnSave").setText("Update"); 
            oForm.bindElement("Model>/Item(ItemCode='"+ oSelectedItem.getTitle() +"')");
        }
        evt.getSource().getBinding("items").filter([]);

    }

这是来自浏览器的完整错误:https://pastebin.com/HsVVQDew

0 个答案:

没有答案