Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SAPUI5中存储绝对URI的最佳实践是什么?_Sapui5 - Fatal编程技术网

在SAPUI5中存储绝对URI的最佳实践是什么?

在SAPUI5中存储绝对URI的最佳实践是什么?,sapui5,Sapui5,想知道在SAPUI5中存储URI的最佳实践是什么。我猜不建议只将它们放在视图或控制器中。正在考虑使用i18n。或创建视图模型。或者创建一个新的.json文件。如果为它创建一个.json模型是最佳实践,那么下一个问题就是将这个.json文件放在SAPUI5项目的标准文件夹结构中的什么位置。欢迎任何建议。目前我使用本地sap.ui.model.json.JSONModel存储静态URL 文件夹结构 webapp --controller --i18n --localService --model -

想知道在SAPUI5中存储URI的最佳实践是什么。我猜不建议只将它们放在视图或控制器中。正在考虑使用i18n。或创建视图模型。或者创建一个新的.json文件。如果为它创建一个.json模型是最佳实践,那么下一个问题就是将这个.json文件放在SAPUI5项目的标准文件夹结构中的什么位置。欢迎任何建议。

目前我使用本地
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模型设置为全局命名模型,因此您可以随时从控制器或视图访问它,这无关紧要。