将Meteor更新为0.8.0后,文本编辑器不显示内容

时间:2014-04-06 06:14:28

标签: javascript meteor

我最近将Simditor整合到Meteor

post_submit.html:

Template.postSubmit.rendered = function() {
  $(function() {
    var editor;
    editor = new Simditor({
      textarea: $("#input-content"),
      placeholder: "Just write",
      pasteImage: true,
      toolbar: ["title", "bold", "italic", "underline"],
      upload: {
        url: "/upload"
      }
    });
  });
};

post_submit.js:

<template name="postSubmit">
  <form class="form" role="form">
    <div class="form-group">
      <textarea name="content" class="form-control" id="input-content" rows="3">{{content}}</textarea>
    </div>
    <button type="submit" class="btn btn-default submit">Submit</button>
  </form>
</template>

post_page.js:

  <div class="mainbar col-md-12">
    {{> postSubmit}}
  </div>
</template>

修改

this.route("postPage", {
  path: "/posts/:_id",
  data: function() {
    return Posts.findOne(this.params._id);
  }
});

它过去工作得很好,但在将Meteor更新到0.8.0后,内容突然从可信任的div(由Simditor生成)和textarea(与前者相同的内容)中消失:

enter image description here

可能是什么问题?我认为这与新rendered方法的工作方式有关。

1 个答案:

答案 0 :(得分:2)

可能是因为您在子模板中使用{{content}}。从0.8.0开始,您无法再访问父模板的帮助程序。但是,您可以访问父模板的数据。

这可能不起作用,但可能是您遇到的问题。鉴于您提供的信息不易复制,很难说清楚。

实现这一目标的一种方法是扩展您的数据上下文以包含content,或手动发送它。

HTML

<template name="parentTemplate">

    {{#with contentData}}
        {{> postSubmit}}
    {{/with}}
</template>

JS

Template.parentTemplate.helpers({

     //Not sure about this part
     contentData: function() {
        return {
            content: Template.parentTemplate.content()
        } 
    }
});