2
我可能會繞過這個錯誤,但我想創建一個自定義控件,它是sap.m.Dialog的子類。這個新的控件將有一個聚合'leftImage',然後將其放置在HorizontalLayout(私有變量)中。但是,這可能會導致錯誤,因爲'leftImage'已經是我的控件的依賴項。自定義控件 - 如何在另一個控件中封裝聚合
那麼如何在另一個控件上封裝一個聚合?
我可能會繞過這個錯誤,但我想創建一個自定義控件,它是sap.m.Dialog的子類。這個新的控件將有一個聚合'leftImage',然後將其放置在HorizontalLayout(私有變量)中。但是,這可能會導致錯誤,因爲'leftImage'已經是我的控件的依賴項。自定義控件 - 如何在另一個控件中封裝聚合
那麼如何在另一個控件上封裝一個聚合?
sap.m.Dialog已經有了一個「內容」聚合體來保存要呈現的控件,所以你只需要在那裏添加你的自定義位。
所以,像這樣的模式應該工作:
sap.ui.define([
"jquery.sap.global",
"sap/m/Dialog",
"sap/m/Image",
"sap/ui/layout/HorizontalLayout"
], function(jQuery, Dialog, Image, HorizontalLayout) {
"use strict";
var MyDialog = Dialog.extend("sap.ui.mylib.MyDialog", {
metadata: {
library: "sap.ui.mylib",
associations: {
leftImage: {type: "sap.m.Image", multiple: false}
}
},
renderer: {
// inherit rendering from sap.m.Dialog
}
});
MyDialog.prototype.init = function() {
if (Dialog.prototype.init) {
Dialog.prototype.init.apply(this, arguments);
}
var oImage = new Image({
src: '...'
}),
oHorizontalLayout = new HorizontalLayout({
content: [
oImage
]
});
this.addContent(oHorizontalLayout);
};
return MyDialog;
}, /* bExport= */ true);
定義leftImage作爲關聯,因爲這將是由HorizontalLayout聚集。它可以稍後訪問:
var oLeftImage = sap.ui.getCore().byId(oMyDialog.getLeftImage());
您可能還想要將HorizontalLayout定義爲關聯,以便您可以添加更多內容。
正是我在找的東西!謝謝! – tapsiturbi