2019-09-26/CKEditor5和Angular的结合

2019-09-26  本文已影响0人  呼噜噜睡

今天呢,我们来讨论一下ckeditor5和angular8的结合,前端我也是渣渣,依葫芦画瓢。当初为什么喜欢Angular呢,一方面是使用过angularJs,尽管angular2和angularJs一点也不像,但是情怀啊,忍不住想要探索。另一个就是Angular的风格很像java,跟那个spring的套路有相似的地方。废话也是够多了,现在我们切入主题。
首先就是搭建环境了,nodejs下载安装一下,什么环境变量,好好配置一下,要不然总会出现ng不是内部或者外部命令。path的环境变量大体有这么几个:

d:\Program Files\nodejs  nodejs的安装目录
C:\Program Files\nodejs\node_global  node的目录之子目录
C:\Program Files\nodejs\node_modules  node的目录之子目录

然后安装Angular cli:

npm install -g @angular/cli

等待一下时间,angular cli安装完成,cmd中键入ng --version


ccc.PNG

说明Angular cli安装好了。
接下来创建项目,cmd进入某一目录,执行 ng new 项目名。然后就会在这个目录创建项目,遇到不懂得就点击yes。过一会,项目就创建好了。
然后我们安装其余的依赖
cmd进入项目:
依次执行:

npm install --save @ckeditor/ckeditor5-angular
npm install --save @ckeditor/ckeditor5-build-classic

依赖至此安装完毕,现在我们来写代码吧。
使用idea导入项目,找到app.module.ts,引入CKEditorModule :

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { AppRoutingModule } from './app-routing.module';
import { CKEditorModule } from '@ckeditor/ckeditor5-angular';

import { AppComponent } from './app.component';
@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    FormsModule,
    CKEditorModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

我们在AppComponent做演示:

import {Component, OnInit} from '@angular/core';
import '@ckeditor/ckeditor5-build-classic/build/translations/zh-cn';
import * as ClassicEditor from '@ckeditor/ckeditor5-build-classic';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
  /**
   * 全局Editor
   */
  public Editor = ClassicEditor;
  /**
   * 配置 20190926 暂时alignment没有效果  ckfinder有问题  ckfinder: {uploadUrl: 'xxx'}这个还没有试验
   */
  public config = {
    alignment: {
      options: [ 'left', 'center', 'right' ]
    },
    toolbar: [ 'heading', '|', 'bold', 'italic', 'link', 'alignment',
      'bulletedList', 'numberedList', 'blockQuote', 'undo',
      'ckfinder', 'imageTextAlternative', 'imageUpload', 'imageStyle:full', 'imageStyle:side'
    ],
    language: 'zh-cn',
    fontFamily: {
      options: [
        'default',
        'Arial, Helvetica, sans-serif',
        'Courier New, Courier, monospace',
        'Georgia, serif',
        'Lucida Sans Unicode, Lucida Grande, sans-serif',
        'Tahoma, Geneva, sans-serif',
        'Times New Roman, Times, serif',
        'Trebuchet MS, Helvetica, sans-serif',
        'Verdana, Geneva, sans-serif',
      ]},
    heading: {
      options: [
        { model: 'paragraph', title: '正文', class: 'ck-heading_paragraph' },
        { model: 'heading1', view: 'h1', title: '标题1', class: 'ck-heading_heading1' },
        { model: 'heading2', view: 'h2', title: '标题2', class: 'ck-heading_heading2' },
        { model: 'heading3', view: 'h3', title: '标题3', class: 'ck-heading_heading3' },
        { model: 'heading4', view: 'h4', title: '标题4', class: 'ck-heading_heading4' },
      ]
    },
    ckfinder: {
      uploadUrl: '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files&responseType=json',
    }
  };
  /**
   * 内容
   */
  public model = {
    editorData: '<p>Hello, world!哈哈</p>'
  };
  ngOnInit(): void {
  }
  public saveData(): void {
    console.log(this.model.editorData);
  }
}

对应的html:

<ckeditor
  [editor]="Editor"
  [(ngModel)]="model.editorData"
  [config]="config"
></ckeditor>
<button type="button" (click)="saveData()">保存</button>

页面效果:


1111111.PNG

完毕。

上一篇下一篇

猜你喜欢

热点阅读