SAPUI5 自定义控件库主题
SAPUI5 Custom control library theme
我最近创建了一个 SAPUI5 库,其中包含许多可重复使用的自定义控件,但我找不到制作包含该库的应用程序来加载 .less
主题的方法定义自定义控件样式的文件。
基本上,我想做的是让库将自定义控件样式嵌入到其他应用程序中。
这是 manifest.json
:
{
"_version": "1.7.0",
"sap.app": {
"id": "zproject",
"type": "library",
"embeds": [],
"i18n": "messagebundle.properties",
"applicationVersion": {
"version": "1.0.0"
},
"title": "{{title}}",
"description": "{{description}}",
"ach": "",
"resources": "resources.json",
"offline": false
},
"sap.ui": {
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": false
},
"supportedThemes": [
"sap_hcb",
"sap_belize",
"sap_belize_plus"
]
},
"sap.ui5": {
"dependencies": {
"minUI5Version": "1.30.0",
"libs": {
"sap.ui.core": {
"minUI5Version": "1.30.0"
}
}
},
"contentDensities": {
"compact": true,
"cozy": false
}
},
"sap.platform.hcp": {
"uri": ""
},
"sap.fiori": {
"registrationIds": [],
"archeType": "reusecomponent"
}
这是我的文件夹结构:
我可以为您提供更多您可能需要的信息,但我认为这些是最有用的
好吧,我仍然不知道为什么它没有被主题直接加载,但我找到了两种实现方式:
sa.ui.dom.includeStylesheet()
方法可直接在组件中加载每个组件CSSDocumentation here
在应用程序中添加一个资源,包括库(部署库应用程序后,它会将 .less
文件构建到 library.css
文件)在 manifest.json
文件:
"resources": {
"css": [{
"uri": "css/style.css"
}, {
"uri": "/resources/YOURLIBRARY/themes/base/library.css"
}]
},
我遇到了同样的问题,最后我在 SAPUI5 的 api 文档中找到了答案:sap.ui.getCore().initLibrary
在我的例子中,属性 noLibraryCSS
设置为 true
,这意味着没有加载任何主题。请仔细检查 library.js
并将此 属性 设置为 false
- 或者完全删除它,因为默认值为 false
.
我最近创建了一个 SAPUI5 库,其中包含许多可重复使用的自定义控件,但我找不到制作包含该库的应用程序来加载 .less
主题的方法定义自定义控件样式的文件。
基本上,我想做的是让库将自定义控件样式嵌入到其他应用程序中。
这是 manifest.json
:
{
"_version": "1.7.0",
"sap.app": {
"id": "zproject",
"type": "library",
"embeds": [],
"i18n": "messagebundle.properties",
"applicationVersion": {
"version": "1.0.0"
},
"title": "{{title}}",
"description": "{{description}}",
"ach": "",
"resources": "resources.json",
"offline": false
},
"sap.ui": {
"technology": "UI5",
"deviceTypes": {
"desktop": true,
"tablet": true,
"phone": false
},
"supportedThemes": [
"sap_hcb",
"sap_belize",
"sap_belize_plus"
]
},
"sap.ui5": {
"dependencies": {
"minUI5Version": "1.30.0",
"libs": {
"sap.ui.core": {
"minUI5Version": "1.30.0"
}
}
},
"contentDensities": {
"compact": true,
"cozy": false
}
},
"sap.platform.hcp": {
"uri": ""
},
"sap.fiori": {
"registrationIds": [],
"archeType": "reusecomponent"
}
这是我的文件夹结构:
我可以为您提供更多您可能需要的信息,但我认为这些是最有用的
好吧,我仍然不知道为什么它没有被主题直接加载,但我找到了两种实现方式:
sa.ui.dom.includeStylesheet()
方法可直接在组件中加载每个组件CSSDocumentation here在应用程序中添加一个资源,包括库(部署库应用程序后,它会将
.less
文件构建到library.css
文件)在manifest.json
文件:"resources": { "css": [{ "uri": "css/style.css" }, { "uri": "/resources/YOURLIBRARY/themes/base/library.css" }] },
我遇到了同样的问题,最后我在 SAPUI5 的 api 文档中找到了答案:sap.ui.getCore().initLibrary
在我的例子中,属性 noLibraryCSS
设置为 true
,这意味着没有加载任何主题。请仔细检查 library.js
并将此 属性 设置为 false
- 或者完全删除它,因为默认值为 false
.