我已将代码简化为核心。有一个自定义元素 < my-button >:
<link rel="import" href="/public/bower_components/polymer/polymer.html">
<dom-module id="my-button">
<template>
<button onclick = "custom_click()">&{common.TWords.REGION_MAP}</button>
</template>
<script>
Polymer({
is: "my-button"
});
</script>
</dom-module>
和我使用我的按钮的索引文件:
#{extends 'layouts/activ_page_template.html' /}
#{set title: play.i18n.Messages.get(common.TWords.ACTIVSITE_MENU_CONTACTS).concat(" | activ") /}
<script src="/public/javascripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="/public/bower_components/webcomponentsjs/webcomponents.min.js"></script>
<div class="row">
<div class="col-xs-12">
#{page_gradient_title}
&{common.TWords.ACTIVSITE_TOPLINKS_CONTACTS}
#{/page_gradient_title}
</div>
</div>
//following two lines are in question
#{polymer/my-button /}
<my-button></my-button>
如果我在 light DOM 中使用 html 导入自定义标签 groovy 模板元素,例如 &{common.TWords.REGION_MAP} 不会被渲染,它只会被逐字复制。但是如果我以 groovy 模板方式导入标签,比如 #{polymer/my-button/},它只适用于谷歌浏览器。 问题出在其他浏览器上,例如 Mozilla firefox。在那个浏览器中,我得到一个错误“ReferenceError:Polymer is not defined”,因为 html 导入发生在最后自然地留下自定义标签中的 Polymer 对象未定义。是否可以在自定义元素的本地 DOM 中使用 groovy 模板,如果可以的话如何?
最佳答案
我不能直接尝试这个,但你可以尝试这些步骤:
- MyButton 必须是一个标签或更好的动态 html 模板的一部分(在
app/views/parts/polymerLibrary.html
中)#include
d 在你的页面上 - 标签中的每个链接
<link rel="import" href="...">
必须使用 Play Framework Groovy 语法引用,即@{'/public/bower_components/polymer/polymer.html'}
- 最重要:每个导入都被称为带有
@@{'/public/bower_components/polymer/polymer.html'}
的绝对 URL (注意双@
)
试试这些,让我们知道它们是否有效。
关于groovy - 在 Play 1 框架中使用带有 groovy 模板的聚合物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31429339/