Angular集成Editor.md的Markdown编辑器,支持NgModel双向绑定

说明

最近用angular做后端,需要用到markdown编辑器,网上找了许多,有html的,但是捣鼓了半天发现无法使用NgModel绑定;也有angular写的模块,但是集成到项目后发现不是很漂亮。

后来无意间在博客园中看到了一位网友推荐的markdown,打开后发现完美!漂亮!和我一直喜欢的CSDN的Markdown功能一样,后来才知道CSDN的也是用的该用例。那就是Editor.md编辑器。地址:https://pandao.github.io/editor.md/

大概就是这个样子:

这就是整体效果
我集成的Demo。欢迎star。传送门ngx-editor.md-markdown

(之前忘记把项目地址写上了。啪啪啪打脸中...)

指令结构:

指令结构

详细代码自行查看

使用

找好了要使用的Markdown之后,开始集成到Angular中。于是就写了一个指令。并且支持NgModel

  • 使用npm或者yarn安装jquery

    npm install jquery
    或者
    yarn add jquery
    
  • 下载editor.md的的文件,并放置到assets文件夹中

  • .angular-cli.json中配置editor.mdcssjs

    "styles": [
         "assets/editor.md/css/editormd.css",
         "styles.css"
       ],
       "scripts": [
         "../node_modules/jquery/dist/jquery.js",
         "assets/editor.md/editormd.min.js"
       ]
    
  • textarea需要用到FromsModule记得添加,另外在module中添加EditorMdDirective指令

  • 引入

    Html

    <div id="md" appEditorMd [editormdConfig]="conf" (onEditorChange)="syncModel($event)">
       <textarea style="display: block;" [(ngModel)]="markdown"></textarea>
    </div>
    

    Component

    conf = new EditorConfig();
    markdown = '测试语句';
    
    // 同步属性内容
    syncModel(str): void {
         this.markdown = str;
    }
    

以下是效果图:

效果图

详细配置可参考官方Editor.md

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前些日子从@张鑫旭微博处得一份推荐(Front-end-tutorial),号称最全的资源教程-前端涉及的所有知识...
    谷子多阅读 9,812评论 0 44
  • 最近老是觉得自己就是一块五花肉,被放在烤锅上反复被翻来覆去的烤来烤去。实在烦的厉害。 001 谈谈负能量爆棚的抱怨...
    七支袜子阅读 2,256评论 0 6
  • 从今天开始,作为一个自由职业者,生活全靠自律了!昨天看s叔的文章,最后一句很喜欢“无需量力,只需前行;不怕路长,只...
    傲娇小猫咪阅读 3,068评论 0 0
  • 初晓红尘知何处, 鸾起伊阙舞。 冷烛渐染烟云雾, 似晨曦微露。 暂凭烛光以盈暮, 鱼跃碎残玉。 魂断梦惊心以悟, ...
    尘绾阅读 2,976评论 1 1
  • 今天简书看了一篇关于供养原生家庭的文章,心里只有共鸣之声。没做过樊胜美,不理解樊胜美的难处。我身边依然有无数同学,...
    步摇阅读 3,304评论 18 3

友情链接更多精彩内容