如何在我的 javascript 代码中使用自定义标签?例如:
function toHTML(message){
return #{customTag message:message /};
}
不工作..
谢谢!
//一些说明
我正在使用 AJAX 检索消息列表,并且我有一个名为“customTag”的 html 标记,其中包含将消息格式化为 <li>
的 html 代码。元素。
如果我打电话
#{customTag message:'hello' /}
直接在 HTML 文件中,它可以工作并将其替换为 <li>hello</li>
.但是当我尝试从 javascript 调用它时,我收到一条错误消息。
最佳答案
您遇到的问题是,您试图将服务器端逻辑(模板呈现)与客户端事件(javascript 执行)混合。因此,您的方法将行不通,因为自定义标记是在您到达客户端之前从服务器端执行的。
您可以使用 Play 标签使其工作,但我建议您考虑使用 Javascript 模板来执行此类客户端。查看 Play 下载中 samples-and-tests 文件夹中的 Chat 应用程序,了解它的运行情况。但是,如果您想使用 Play 模板/标签使其正常工作,请参见下文。
如果您更改您的自定义标记,使其不接受输入,而是“知道”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>
关于javascript - 我如何在 Play! 的 javascript 中使用自定义模板标签?框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7052348/