如何将tapestry核心堆栈中的库注入或导入组件?

时间:2018-04-09 23:15:57

标签: requirejs tapestry

我正在使用挂毯5.4.1。我有一个带有需要原型的模块的组件。我知道原型在核心堆栈中可用。但是,如何将其作为依赖项导入。

我的模块:

define(["prototype"], function(container, link) {
  return new Ajax.PeriodicalUpdater(container, link, {
      method : 'post', frequency : 5, decay : 1
  });
});

我尝试将其添加到课程中但路径无法解析

@Import(library = {"prototype.js"})
public class Update {

尝试注入资产并将其添加到环境javascriptsupport,但它以某种方式在错误的位置查找它。

@Inject
@Path("classpath:META-INF/assets/tapestry5/prototype.js")
private Asset prototype;

javascriptSupport.importJavaScriptLibrary(prototype);
javascriptSupport.require("update").with(container, getLink());

我不想用生成的哈希对网址进行硬编码。

/assets/meta/z67bxxxx/tapestry5/scriptaculous_1_9_0/prototype.js

我在这里缺少什么?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

确保在AppModule中定义正确的基础架构

@ApplicationDefaults
public static void contributeApplicationDefaults(MappedConfiguration<String, Object> configuration) {

    configuration.add(SymbolConstants.JAVASCRIPT_INFRASTRUCTURE_PROVIDER, "prototype");
}

您不必明确指定依赖关系[&#34;原型&#34;]。