在Play 1框架中使用聚合物和groovy模板
我已经将代码简化到核心。有一个自定义元素<我的按钮>:在Play 1框架中使用聚合物和groovy模板,groovy,playframework-1.x,polymer-1.0,Groovy,Playframework 1.x,Polymer 1.0,我已经将代码简化到核心。有一个自定义元素: <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>
<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>
&{common.TWords.REGION_MAP}
聚合物({
是:“我的按钮”
});
和使用按钮的索引文件:
#{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>
{extends'layouts/activ_page_template.html'/}
#{set title:play.i18n.Messages.get(common.TWords.ACTIVSITE_MENU_CONTACTS).concat(“| activ”)/}
#{页码_梯度_标题}
&{common.TWords.ACTIVSITE\u TOPLINKS\u CONTACTS}
#{/page_gradient_title}
//下面两行是有问题的
#{polymer/my button/}
如果我使用html导入自定义标记,则在light DOM中使用groovy模板元素,例如
&{common.TWords.REGION_MAP}不会被渲染,它将被逐字复制。但是,如果我以groovy模板的方式导入标记,如#{polymer/my button/},它只在Google Chrome中起作用。
问题在于其他浏览器,比如Mozilla firefox。在该浏览器中,我得到一个错误“ReferenceError:Polymer未定义”,因为html导入最终会自然地将自定义标记中的Polymer对象保留为未定义。可以在自定义元素的本地DOM中使用groovy模板吗?如果可以,那么如何使用?我不能直接尝试,但您可以尝试以下步骤:
- MyButton必须是标签或更好的动态html模板的一部分(在
)app/views/parts/polymerLibrary.html
#在页面中包含
d
- 标签
中的每个链接必须使用Play Framework Groovy语法引用,即@{'/public/bower_components/polymer/polymer.html'
- 最重要的:每次导入都被称为绝对URL,带有
(注意双重@{'/public/bower\u components/polymer/polymer.html'}
)@