javascript - 自动扫描来自 ExtJS 的配置文件

标签 javascript extjs

我正在从头开始创建 ExtJS 6.2 应用程序。我对这个框架很陌生,所以我可以在应用程序的脚手架上使用一些帮助。

设计的应用程序应该有单独的“插件”(在代码/包级别)将完全分离。我们也有某种路由器,它将为每个 View 名称注册一些信息(路径/ Controller /模型/附加信息)。我希望它以类似于模板方法设计模式的方式工作。当我添加新插件/模块时,我还会添加具有特定名称模式的文件 - 例如。模块 ACMEGlobalConf。我希望 ExtJS 应用程序(或组件/类 - 无论如何)以某种方式扫描整个类树以查找具有此类名称模式的文件,读取它们的内容,然后放入我的路由器配置/全局命名空间变量。

问题是 - 实现这一目标的最佳方法是什么?

更新:

我想要的结构:

MyAppFolder  
---Module1  
.....MyConfigGlobal1.js  
---Module2  
.....MyConfigGlobal2.js  
---  
---Router.js  -> I want this file to scan whole 'MyAppFolder' tree, find files with *ConfigGlobal*.js pattern, read them and store in global namespace  

MyConfigGlobal1.js

var config = { configProp1:  'test', configProp2:  'test2'}

MyConfigGl​​obal2.js
var config = {configProp3: 'test3', configProp4: 'test4'}

路由器.js
var configsMap = EXT.SOMETHING.FIND.ME.CLASSES.FROM.TREE.WITH.NAME('*MyConfigGlobal*')

而且我希望路由器加载所有内容(它可以在类级别,而不是文件级别) - 无论是一个类还是一百个。有了这个解决方案,我就不必更改 Router.js - 只需在我正在创建的新模块中添加另一个配置类。因此无需重新测试以前的模块。

但是如果我在路由器中有这样的东西:
var requiredConfigs = ['MyGlobalConfig1.js','MyGlobalConfig2.js']

而且我即将在路由器中将第三个文件/类添加到此列表中,这意味着策略已损坏,我必须重新测试模块 1 和模块 2,因为它们以某种方式通用的代码已被修改。

最佳答案

如果没有暴力破解或调用后端,你就做不到。这是浏览器的限制。

原因是安全。因为如果可以的话,理论上可以使用 JavaScript 扫描网站并获取目录结构,可能会在未经授权的情况下查看甚至访问文件。

最好也是最有效的方法是编写一个方法,在您的后端扫描您的 Web 目录并提供您在 requiredConfigs 中提到的列表。想法作为 JSON 对象。甚至像

<script type="text/javascript" source="configFiles.js"></script>

在您的 index.html 文件中将可靠地工作。然后你有一个要加载的文件列表。然后你可以修改你的引导文件,使这些文件包含在你需要的列表中,这可以在 ExtJS 初始化之前用纯 JavaScript 完成。

关于javascript - 自动扫描来自 ExtJS 的配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42974788/

相关文章:

javascript - 不用Webpack,在客户端使用Babel转译导入导出?

javascript - 使用 Angularjs 创建 Bootstrap CSS 类的下拉列表

javascript - 如何在 CouchDB 中创建 "like"过滤器 View

javascript - 热禁用 Ext.JS 网格中的行选择

extjs - 如何在ext 4中制作一个完整的模态窗口?

javascript - 将 JSON 数据附加到不同的元素

javascript - 无法使用速记箭头功能

javascript - 闭包中的局部变量如何成为 Ext JS 中的私有(private)成员变量?

java - 从 GXT 中的窗口组件中删除调整大小光标

javascript - 从单个商店动态创建多个 Sencha ExtJS 商店