fex-team / fis-velocity-tools

Like velocity-tools, we focus on the front-end integrated solution.
29 stars 23 forks source link

异频加载页面时异步依赖无法识别问题 #22

Closed richardchen85 closed 8 years ago

richardchen85 commented 8 years ago

我看你的代码,只有在Html指令中才会去替换掉这类占位符,所以如果是在异步请求的页面中,是不需要Html标签的,所以在里面异步引用资源,如:

#script
require(['../form'])
#end

详情见jello-demo中的page/examples/partial/form.vm文件,通过ajax请求该页面时,引用的js不能被正确的识别,当然可以使用#require直接引用。所以不知道是bug呢,还是确实是不需要在异步的页面里进行异步的资源引用?

2betop commented 8 years ago

#filter

2betop commented 8 years ago

https://github.com/fex-team/fis-velocity-tools/blob/master/src/main/java/com/baidu/fis/velocity/directive/Filter.java

richardchen85 commented 8 years ago

还是不行呢,或者使用姿势是什么呢,因为我加了#filter()指令,调试时发现resource实例的framework=null,所以执行到filterContent()方法时,不会去buildResourceMap()或者buildAMDPath(),请指教

2betop commented 8 years ago

framework 还是要设置的, vm 里面不写 <!--FIS_FRAMEWORK_PLACEHOLDER--> 就不会输出。

resourceMap 的类型还是得设置了 framework 后才能知道,因不光支持 mod.js 还支持 require.js

以下是可用注释列表,主要为了方便粘贴,可以忽略

    public static final String STYLE_PLACEHOLDER = "<!--FIS_STYLE_PLACEHOLDER-->";
    public static final String SCRIPT_PLACEHOLDER = "<!--FIS_SCRIPT_PLACEHOLDER-->";
    public static final String FRAMEWORK_PLACEHOLDER = "<!--FIS_FRAMEWORK_PLACEHOLDER-->";
    public static final String FRAMEWORK_CONFIG = "<!--FIS_FRAMEWORK_CONFIG-->";
richardchen85 commented 8 years ago

framework需要在哪里设置呢?

2betop commented 8 years ago

新修改了 filter,自行 mvn package 吧,filter 里面也可以设置了