我正在开发一个聊天室应用程序,并希望自动格式化超链接,以便无需复制/粘贴即可访问它们。
我找到了 autolink.js 并能够使用静态 HTML 模板使其工作,但无法使其与流星一起工作。
有什么建议么?
编辑 -
流星版本 0.6.1
聊天室应用程序 - https://github.com/SmashBrando/chatroom
Autolink.js - https://github.com/bryanwoods/autolink-js
(这没有设置,因为它不起作用)
我正在开发一个聊天室应用程序,并希望自动格式化超链接,以便无需复制/粘贴即可访问它们。
我找到了 autolink.js 并能够使用静态 HTML 模板使其工作,但无法使其与流星一起工作。
有什么建议么?
编辑 -
流星版本 0.6.1
聊天室应用程序 - https://github.com/SmashBrando/chatroom
Autolink.js - https://github.com/bryanwoods/autolink-js
(这没有设置,因为它不起作用)
把它放在你想要显示超链接的助手中。假设你已经在你的文件夹中设置了 autolink.js,/client/lib
只需将它与你的助手一起使用
例如
客户端js
Template.hello.greeting = function() {
return "This is a link to Google http://google.com".autoLink()
}
并且您需要确保您的 HTML 使用可以提供 html 输出的把手(即两侧有 3 个花括号而不是 2 个):
模板中的 html
{{{greeting}}}
这应该输出
This is a link to Google <a href="http://google.com">http://google.com</a>
当使用返回光标的把手助手时,例如Messages.find()
在您的代码中,您需要transform
您的集合。因此,您需要使用您的代码更改返回值:
Template.messages.messages = function () {
return Messages.find({}, { sort: {time: -1}, transform: function(doc) {
if(doc.message) doc.message = doc.message.autoLink()
return doc;
}
});
};
转换会更改集合中的文档,因此在上面的每个消息都是自动链接的。
您还需要让车把将其显示为可点击的链接,方法是更改 HTML 的车把以使用 3 个花括号来确保您的 ' 不会被转义:
<template name="message">
<p><strong>{{name}}:</strong> {{{message}}}</p>
</template>