首页 > 解决方案 > 用另一个对象的属性扩展对象

问题描述

我想用一个新的自定义属性来扩展 Combobox 和 Multicombobox。我知道,我可以用这样的元数据来做到这一点:

sap.ui.define([
    "sap/m/MultiComboBox"
], function(MultiComboBox) {
    var Box = MultiComboBox.extend("U9.MultiComboBox",{
        metadata: {
            properties: {
                filterType: {
                    type: "string",
                    defaultValue: "default"
                },  ...

对于组合框:

sap.ui.define([
    "sap/m/ComboBox"
], function(ComboBox) {
    var Box = ComboBox.extend("U9.ComboBox",{
        metadata: {
            properties: {
                filterType: {
                    type: "string",
                    defaultValue: "default"
                },  ...

由于我是一个非常懒惰的人,而且我有许多自定义属性,我不想重复自己,所以我想创建一个单独的对象,并使用该对象的属性扩展组合框。可能看起来像这样:

sap.ui.define([
    "sap/ui/base/ManagedObject"
], function(MO) {
    var Filterable = MO.extend("U9.Filterable",{
        metadata: {
            properties: {
                filterType: {
                    type: "string",
                    defaultValue: "default"
                },  ...

sap.ui.define([
    "sap/m/ComboBox","U9/Filterable"
], function(ComboBox,Filterable) {
    var Box = ComboBox.extend("U9.ComboBox",Filterable...

有可能得到这样的工作吗?我有一个模糊的想法,我可以覆盖一个构造函数并在那里添加一些额外的编码。你知道它是否会起作用吗?我可以使用 openUI5 源代码中的任何示例吗?

标签: sapui5

解决方案


推荐阅读