如何在我的javascript代码中使用自定义标记?例如:
function toHTML(message){
return #{customTag message:message /};
}
不起作用..
谢谢!
//一些澄清
我正在使用AJAX检索消息列表,并且我有一个名为“customTag”的html标记,其中包含用于将消息格式化为<li>
元素的html代码。
如果我打电话
#{customTag message:'hello' /}
直接在HTML文件中,它可以工作并用<li>hello</li>
替换它。但是当我尝试从javascript调用它时,我收到一条错误消息。
答案 0 :(得分:1)
这不行。尝试在价值附近使用双引号。或者,清楚地写下你想要的东西。
答案 1 :(得分:1)
您遇到的问题是,您正在尝试将服务器端逻辑(模板的呈现)与客户端事件(javascripts执行)混合在一起。因此,您的方法将无法工作,因为自定义标记在您到达客户端之前从服务器端执行。
你可以使用Play标签让它工作,但我建议你考虑使用Javascript模板来做这种客户端。在Play下载中的samples-and-tests文件夹中查看聊天应用程序以查看其运行情况。但是,如果您希望使用播放模板/标签使其正常工作,请参阅下文。
如果您更改自定义标记以使其不接受输入,而是“了解”javascript变量,那么这应该可行。所以你的标签代码看起来像
"<li>" +message+ "</li>";
因此,这不会使用标记将变量传递给标记,而是使用客户端javascript变量。
我在测试应用程序(views / Application / index.html)中使用以下代码对此进行了测试,并按预期输出了javascript。
<html><head></head>
<body>
<script type="text/javascript">
function toHTML(message){
return #{message /}
}
alert(toHTML("hello"));
</script>
</body>
</html>
答案 2 :(得分:0)
在我看来,这不起作用,因为在服务器端评估自定义标记,即在内容发送到客户端之前,然后在解释JavaScript之前。
[抱歉我的英文!]