在onBeforeShow中将模型设置为视图时出错

时间:2016-06-01 07:09:17

标签: sapui5

我在导航到该视图后尝试将模型设置为onBeforeShow挂钩中的视图(使用路由器)。

以下是我的相关视图代码部分:

<Table items="{path:'model>/'}">
    <columns>
        <!-- columns definition here -->
    </columns>
    <items>
        <ColumnListItem>
            <cells>
                <Text text="{model>property1}"/>
                <Text text="{model>property2}"/>
                <Text text="{model>property3}"/>
                <Text text="{model>property4}"/>
                <Text text="{model>property5}"/>
            </cells>
        </ColumnListItem>
    </items>
</Table>

然后,在onBeforeShow上:

var oData = sap.ui.getCore().getModel("modelSource");
this.getView().setModel(oData, "model");

"modelSource"在上一个视图中定义。

执行模型设置行时,出现以下错误:

  

TypeError:e.bindList不是函数

这是我的onBeforeShow钩子定义(归功于this post):

onInit: function() { 

    this.getView().addEventDelegate({ 
        onBeforeShow : jQuery.proxy(function(evt) { 
            this.onBeforeShow(evt); 
        }, this) 
    }); 
}, 

如何解决问题?

感谢。

1 个答案:

答案 0 :(得分:0)

我没有正确定义modelSource模型:

sap.ui.getCore().setModel(oData, "modelSource");

正确定义:

sap.ui.getCore().setModel(new sap.ui.model.json.JSONModel(oData), "modelSource");

修正了错误。