1

我正在开发一个聊天室应用程序,并希望自动格式化超链接,以便无需复制/粘贴即可访问它们。

我找到了 autolink.js 并能够使用静态 HTML 模板使其工作,但无法使其与流星一起工作。

有什么建议么?

编辑 -

流星版本 0.6.1

聊天室应用程序 - https://github.com/SmashBrando/chatroom

Autolink.js - https://github.com/bryanwoods/autolink-js

(这没有设置,因为它不起作用)

4

1 回答 1

2

把它放在你想要显示超链接的助手中。假设你已经在你的文件夹中设置了 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>

使用 transform 自动链接游标

当使用返回光标的把手助手时,例如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>
于 2013-04-08T20:26:35.393 回答