在SAPUI5中存储绝对URI的最佳实践是什么?
想知道在SAPUI5中存储URI的最佳实践是什么。我猜不建议只将它们放在视图或控制器中。正在考虑使用i18n。或创建视图模型。或者创建一个新的.json文件。如果为它创建一个.json模型是最佳实践,那么下一个问题就是将这个.json文件放在SAPUI5项目的标准文件夹结构中的什么位置。欢迎任何建议。目前我使用本地在SAPUI5中存储绝对URI的最佳实践是什么?,sapui5,Sapui5,想知道在SAPUI5中存储URI的最佳实践是什么。我猜不建议只将它们放在视图或控制器中。正在考虑使用i18n。或创建视图模型。或者创建一个新的.json文件。如果为它创建一个.json模型是最佳实践,那么下一个问题就是将这个.json文件放在SAPUI5项目的标准文件夹结构中的什么位置。欢迎任何建议。目前我使用本地sap.ui.model.json.JSONModel存储静态URL 文件夹结构 webapp --controller --i18n --localService --model -
sap.ui.model.json.JSONModel
存储静态URL
文件夹结构
webapp
--controller
--i18n
--localService
--model
--test
--util // into the util folder goes the url.json
----url.json
--view
url.json
[{
"my_url_name": "my_url"
},
{
"my_other_url_name": "my_other_url"
}]
View.controller.js
...
onInit: function(oEvent) {
...
// set model to view
var sPath = jQuery.sap.getModulePath("myAppNameSpace.util", "/url.json");
var oModel = new JSONModel(sPath);
this.getView().setModel(oModel, "url");
// use model
var sMyUrl = this.getView().getModel("url").getProperty("/my_url_name");
...
}
...
SAPUI5基于,因此我们可以简单地创建一个包含所有常量的模块定义,就像我们在其他支架(如CRA和angular cli)中看到的类似模式一样
因此,我们可以在webapp
文件夹中创建一个名为Constants.js
的文件,然后添加我们的URL和其他常量,例如:
//webapp/Constants.js
sap.ui.define([],
函数(){
"严格使用",;
变量常数={
基本URL:'http://localhost:8080',
SOME_API_路径:'/API/SOME',
请求\u头:{
“X-XSRF-TOKEN”:“其他内容”
},
另一个常量:“某物”
};
返回常数;
});
然后,我们可以通过将常量添加到依赖项数组,在需要的任何位置导入常量:
//SomeController.js
sap.ui.define([
“/常数”
],函数(常数){
console.info(Constants.BASE_URL);
});
.env
文件也是基于环境的常量的一个选项,但是,我认为这超出了您的问题范围。好吧,这取决于您将使用这些URL做什么?如果您想在控件中显示它们,可以查看关于URL白名单的文章。但是,如果您想将它们用作常量,可以将json或js文件添加到“model”文件夹下。白名单是一个很好的功能,它不知道。可能在将来某个时候很方便。是的,希望将它们用作常量。猜一猜,模型中的.json是一个很好的选项。是的,您甚至可以使用constans将此json模型设置为全局命名模型,因此您可以随时从控制器或视图访问它,这无关紧要。