Meteor/Iron路由器-何时何地运行JS以交换到所见即所得
Meteor/Iron Router - When/Where to run JS to swap to WYSIWYG
我正试图找出运行jQuery插件的最佳位置,该插件将替换文本区域(使用反应值)。在为文本区域分配了值之后,需要调用它。
我试过各种地方。我尝试过的最正确的地方似乎是模板onAfterAction
回调中的Meteor.defer
。大约95%的时间都是这样。
类似这样的东西:
MyController = RouteController.extend({
waitOn: function () {
return Meteor.subscribe('post', this.params._id);
},
onAfterAction: function () {
Meteor.defer(function () {
$('.make-wysiwyg').wysiwyg();
});
}
});
然而,偶尔情况并非如此。如果我开始在帖子之间快速切换,偶尔会有一个帖子在textarea
有数据之前运行,并且无法显示属性(它将为空,因为它需要在调用wysiwyg()
之前的值)。
我已经消除了wysiwyg()
函数本身作为罪魁祸首,将该行替换为:
$('.make-wysiwyg').each(function () {console.log($(this).val())});
我可以清楚地看到,它会在没有明显原因的情况下打印空的值字段。
我不确定模板或publish()
函数是否是罪魁祸首,所以我也会提供它们。
非常感谢任何想法。
模板:
<template name="adminPostsEdit">
<h1>Edit Post</h1>
<form id="edit-post" class="{{isNewClass}}" method="post">
<label for="post-title">Title</label>
<input id="post-title" value="{{post.title}}">
<label for="post-slug">Slug</label>
<input id="post-slug" value="{{post.slug}}">
<label for="post-content">Content</label>
<textarea id="post-content" class="make-wysiwyg">{{post.content}}</textarea>
<label for="post-excerpt">Excerpt</label>
<textarea id="post-excerpt" class="make-wysiwyg">{{post.excerpt}}</textarea>
{{#if post.published}}
<button value="save">Save</button>
<button value="unpublish">Unpublish</button>
{{else}}
<button value="save">Save Draft</button>
<button value="publish">Publish</button>
{{/if}}
<button value="cancel">Cancel</button>
</form>
</template>
publish()
:
Meteor.publish('post', function (id) {
return Posts.find({_id: id});
});
帮助者:
Template.adminPostsEdit.helpers({
post: function () {
return Posts.findOne();
},
isNewClass: function () {
return !this.id ? 'new' : '';
}
});
您应该在模板的渲染函数中执行此操作。
Template.adminPostsEdit.rendered = function() {
$('.make-wysiwyg').wysiwyg();
})
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- Node.js使用派生两个子进程,然后两个子进程如何相互交换
- js - 单击时交换图像
- Meteor/Iron路由器-何时何地运行JS以交换到所见即所得
- 在js中交换变量
- 节点.js游戏开发,客户端-服务器数据交换逻辑
- JS/jQuery 在滚动事件上交换图像
- 更高效的JS案例交换
- Node.js和socket.io不允许连接和交换数据
- 在knockout js中如何在两个视图模型之间交换值
- 如果数据存在,Knockout js网格交换输入字段
- 在JS中交换行
- Prebid JS集成与脉冲点交换
- 在JS中交换id's -这只工作一次.为什么
- 使用可排序的Knockout js交换
- 对于拥有Cocoa和JS客户端的web服务来说,最简单的数据交换格式是什么?
- 如何交换2 @Html.Jquery/JS的DropDownListFor
- PHP/JS内容交换正在响应一个";1〃;毕竟?可以'找不到来源
- JS中的多个图像交换,鼠标移出错误的图像
- JS检查网站的类名和交换文本的颜色