听起来高大上,其实技术很简单的,就那么回事。
函数数组,就是一个数组咯,元素是函数。遍历这个数组,一个个执行之。
依赖注入,就是这个函数数组是个全局变量,模块可以往它里面插入自己的函数。
什么场景会用呢?
我这里有一个场景,是这样的,容器页里面有好多模块,这些模块各自不同,有各自要处理的东西,但也要有一些方法要放在容器页里统一执行。那么统一执行的这些方法,如果都在容器页里声明,就破坏了模块的封装和独立性。那么最好的办法就是在每个模块里往这个函数数组添加自己的函数。
<script>
var hyyj_tj_funs = [];//待执行函数集,由各片段注入
</script>
。。。
<script th:inline="javascript">
(function(){
let path = /*[[@{/data/onemap/city.json}]]*/'/data/onemap/city.json';
$.get(path, function (citys) {
for(let i in hyyj_tj_funs){//执行各片段注入的函数
let f = hyyj_tj_funs[i];
f(citys);
}
});
})();
</script>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
每个模块
<script>
hyyj_tj_funs.push(function(citys){
...
});
</script>
- 1
- 2
- 3
- 4
- 5