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生成)和文本区域(其内容与前者的内容相同)中消失:
有什么问题吗?我认为这与新的rendered
方法的工作方式有关。
发布于 2014-04-06 00:20:52
这可能是因为您在子模板中使用{{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()
}
}
});
https://stackoverflow.com/questions/22890639
复制