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(与前者相同的内容)中消失:
可能是什么问题?我认为这与新rendered
方法的工作方式有关。
答案 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()
}
}
});