将tinyMCE与knockoutjs绑定

Binding tinyMCE with knockoutjs

本文关键字:绑定 knockoutjs tinyMCE      更新时间:2023-09-26

尝试使用tinyMCE自定义绑定。我的型号C#:

    public sealed class CabinetShapeEditModel
{
    public string Description { get; set; }
}

视图:

    <script type="text/javascript">
    var jso = @Html.Raw(Json.Encode(Model));
    var viewModel = ko.mapping.fromJS(jso);
</script>

我的HTML:

<div style="min-height: 250px; padding-left: 10px; padding-top: 5px;">
          <textarea data-bind="wysiwyg: Description, wysiwygConfig: {selector:selector, menubar:false, statusbar : false, height: 210, toolbar: 'undo redo | styleselect | bold italic | link unlink | image | media | charmap| code | table | ltr rtl | emoticons | forecolor backcolor | fullscreen | preview', plugins: 'hr,link,image,charmap,preview,code,fullscreen,insertdatetime,media,table,directionality,emoticons,textcolor'  }"></textarea>
</div><script type="text/javascript">
    ko.applyBindings(viewModel);</script>

JavaScript:https://github.com/michaelpapworth/tinymce-knockout-binding

但总是收到错误:未捕获的类型错误:无法处理绑定"wysiwyg:function(){return Description}"消息:Object〔Object Object〕没有方法"tinymce"

我做错了什么?

错误Message: Object [object Object] has no method 'tinymce'表明您没有包含jquery.tinymce.min.js插件。我已经更新了文档以澄清这一点。

尝试

  1. 包括wysiwyg绑定的调试版本,而不是压缩版本,如果您还没有
  2. 在您的开发工具(Chrome开发工具或Firebug)中,转到脚本面板并在第57行上设置断点

    $(element).text(value).tinymce(defaults);
    

现在重新加载页面。这应该在错误发生之前触发调试器。

$(element)应该是你的文本区域,value应该是你自己的Description。当开发工具在断点上停止时,打开控制台,手动运行这些步骤,看看是否有什么意外的结果:

$(element)
$(element).text(value)
$(element).text(value).tinymce(defaults)