SapUI5:为什么会出现错误"无法读取属性' setText' of null"在自定义控制上

时间:2017-08-29 07:36:17

标签: sapui5

我试图扩展MessageStrip控件。

首先,我创建了一个新文件来扩展它,而根本没有新的参数

MessageStrip.js

sap.ui.define(["sap/m/MessageStrip"],
    function (MessageStrip) {
    "use strict";
    return MessageStrip.extend("com.sap.it.cs.itsdpphome.controller.fragments.MessageStrip", {
        metadata: {
            properties: {
            },
            aggregations: {
            },
            events: {
            }
        },

        init: function () {
        },

        renderer:{}
    });
});

我还创建了一个从模型中检索数据的xml文件:

<List  items="{msgData>/msgData}" >
<CustomListItem>
    <wt:MessageStrip
        text="{msgData>Text}"
        type="{msgData>Type}"
        showIcon="true"
        showCloseButton="false"
        customIcon="{msgData>customIcon}"
        class="sapUiMediumMarginBottom">
        <Link text="{msgData>linkText}"
            target="{msgData>linkTarget}"
            href="{msgData>linkUrl}" />
    </wt:MessageStrip>
</CustomListItem>
</List>

我可以在xml中获得所有模型参数,除了&#34; text&#34; PARAM!

如果我删除text="{msgData>Text}",则会显示除文本之外的所有正确的参数。

但是当我添加text="{msgData>Text}"时,控制台会显示一个 错误:

  

未捕获的TypeError:无法读取属性&#39; setText&#39;为null

enter image description here

为什么会这样?

1 个答案:

答案 0 :(得分:2)

您必须在自己的init中致电基座的sap.m.MessageStripinit

init: function () {
    MessageStrip.prototype.init.call(this);
},

它应该可以解决你的问题。