流星适当恒定使用

时间:2014-03-15 14:35:10

标签: javascript meteor

我正在文本区域使用WYSIWYG(bootstrap3-wysiwyg5)包。该包正在按预期工作,但每当呈现页面时,用粗体,斜体等修改文本的菜单都会相乘。

Here's what it looks like

我认为使用{{#constant}}块会阻止它,但它似乎没有做任何事情。

所以,有两个问题:

  1. 我是否在此实例中错误地使用了{{#constant}}块?
  2. 如果没有,有关停止这种退回情况的任何建议吗?
  3. 以下代码

    要使用wysiwyg编辑器,只需将其添加到您要使用的任何文本区域即可。在客户端我有:

    Template.announcements.rendered = function(){
      $('#announcement_message').wysihtml5({
        "font-styles": false, //Font styling, e.g. h1, h2, etc. Default true
        "emphasis": true, //Italics, bold, etc. Default true
        "lists": true, //(Un)ordered lists, e.g. Bullets, Numbers. Default true
        "html": false, //Button which allows you to edit the generated HTML. Default false
        "link": true, //Button to insert a link. Default true
        "image": false, //Button to insert an image. Default true,
        "color": false //Button to change color of font
      });;
    };
    

    然后在模板中我有:

    {{#constant}}
      <textarea id="announcement_message" class="form-control" name="message" type="text"></textarea>
    {{/constant}}
    

1 个答案:

答案 0 :(得分:1)

constant块通常以这种方式工作,但问题在于实际运行渲染函数的次数。如果您在console.log()中添加Template.announcements.rendered(),我愿意打赌它会出现4次。

这在Meteor的新渲染系统Blaze中不会成为问题。他们正在解决这个问题here

Ben McMahen对Meteor的渲染回调有一个很棒的post,并且在那里,他有一个建议的代码块,用于确保某些东西只运行一次,并通过附加{{{{{{ 1}}}属性到Template实例,如:

rendered