14

我正在使用 Meteor 进行一个项目,我希望它使用降价,很高兴看到有一个包可以做到这一点。

所以我流星添加了摊牌,它起作用了,现在我可以做类似的事情

{{#markdown}}
    #This is a header

    this is a paragraph
{{/markdown}}

它工作得很好。但现在我想在里面放一些更有趣的东西。第一个想法是将其与文本区域同步。我尝试了三件事。首先,我试过这个:

$('.preview').html('{{#markdown}}'+$('#text').val()+'{{/markdown}}');

其中 .preview 是一个 div,我希望在其中显示 html,而 #text 是某人正在输入的文本区域。这不起作用,它只显示 {{#markdown}} 和东西。

接下来,我尝试像这样设置 div:

<div class="preview">
    {{#markdown}}

    {{/markdown}}
</div>

并添加:

$('.preview').html('#Is this an H1?');

或者

$('.preview').append('*is this italics?*');

但同样,它只显示文本,而不是 html。

最后,我尝试将内容硬编码到降价部分,但这显然不起作用。像

<div class="preview">
    {{#markdown}}
        <div class="previewInner">

        </div>
    {{/markdown}}
</div>

或者

<div class="span6 preview">
    {{#markdown}}
        {{>innerPreview}}
    {{/markdown}}
</div>

所以基本上,我已经尝试了我能想到的一切,但没有一个能达到我想要的效果。我尝试了更多的东西,但我想你明白了。我应该如何使用它?

这很简单:只需将您的降价代码放在 {{#markdown}} ... {{/markdown}} 标签内。

4

1 回答 1

15

markdown 中的所有内容都被视为降价,因此请确保您这样做:

{{#markdown}}{{>innerPreview}}{{/markdown}}

代替

{{#markdown}}
    {{>innerPreview}}
{{/markdown}}

jquery 不起作用,因为{{markdown}}在 DOM 就位之前呈现。

而是使用会话

Template.hello.markdown_data = function() {return Session.get("markdown_data")});

然后你的模板

{{#markdown}}{{{markdown_data}}}{{/markdown}}

然后将您的降价文档存储在

Session.set("markdown_data","<your markdown data>");

于 2013-06-10T18:58:50.093 回答