我无法让TinyMCE v4与backbone.js一起使用。
我有一个backbone.js视图,其中包含我想与TinyMCE一起使用的textarea。
我将tinymce init函数包装在jquery函数中,如下所示:
$(function () {
tinymce.init({selector:'textarea'});
)};
我的观点使用这样的模板:
<script type="text/template" id="tn-template">
<textarea> </textarea>
</script>
textarea永远不会转换为tinyMCE实例。
如果我将textarea从模板中删除,然后将其转储到我的html页面中,那么它确实有效。
所以问题似乎是tinyMCE看不到textarea,即使它在页面上,我可以使用firebug看到它。
我尝试在所有的backbone.js调用之后放入tinyMCE init,但它仍然不起作用。
任何提示?
由于
答案 0 :(得分:2)
选择器不会查看&#39;脚本&#39;因为脚本块内的代码不是DOM元素。
在调用tinyMCE之前,您可能想先渲染视图。
例如
SomeView = Backbone.View.extend({
render: function () {
this.$el.html(this.template({
//template args
}));
tinymce.init({selector:'textarea'});
}
});
我觉得在骨干网视图中使用tinyMCE很困难,因为默认情况下,tinymce初始化是全局的。
要提高性能,请尝试使用精确模式并将ID作为选择器传递(请参阅tinymce文档),并在再次调用init之前始终检查textarea是否已初始化。 (因为您的观点可能不止一次呈现)
另外,我过去尝试了一种不同的方法,即在所有方法之前初始化,然后只需使用tinymce.exe命令和#34; mceAddEditor&#34;添加个别的。退回是将事件绑定到新添加的编辑器是很棘手的。