angular中怎么使用monaco-editor?下面本篇文章記錄下最近的一次業(yè)務中用到的 monaco-editor 在 angular 中的使用,希望對大家有所幫助!
安裝依賴
在 angular12 及之前你可以選擇
- monaco-editor
- ngx-monaco-editor
這是沒有問題的 但是如果你使用了更高版本的 angular 在使用 npm 安裝 ngx-monaco-editor 時 會報錯?!鞠嚓P教程推薦:《angularjs視頻教程》】
因為原作者似乎已經(jīng)停止了對這個庫的維護 最終的支持停留在了 angular12 版本
當然 你選擇可以選擇正如提示那樣 用 --force 或者 --legacy-peer-deps 來解決問題
但是為了 消除/避免 隱藏的一些問題 我在原作者的基礎上將框架的 angular 支持提升到了 14 并且會一直更新
@rickzhou/ngx-monaco-editor
github github.com/rick-chou/n…
當然 你也可以選擇將作者的源代碼移入自己的本地代碼中 這也是完全沒有問題的
- base-editor.ts 引入 monaco-editor
- config.ts
- diff-editor.component.ts
- editor.component.ts
- editor.module.ts
- types.ts
你只需要移動 lib 目錄下的六個文件 然后把它們當成自己項目中的一個 module 去使用就好了
使用
其實所有的 api 都可以在 editor.api.d.ts
這個文件中找到
// 在這個editor下就可以找到所有TS類型 import { editor } from 'monaco-editor';
下面記錄一下常用的
1、設置
// eg export const READ_EDITOR_OPTIONS: editor.IEditorOptions = { readOnly: true, automaticLayout: false, minimap: { enabled: false, }, renderFinalNewline: false, scrollbar: { vertical: 'visible', }, mouseWheelZoom: true, contextmenu: false, fontSize: 16, scrollBeyondLastLine: false, smoothScrolling: true, cursorWidth: 0, renderValidationDecorations: 'off', colorDecorators: false, hideCursorInOverviewRuler: true, overviewRulerLanes: 0, overviewRulerBorder: false, };
2、獲取editor實例
<ngx-monaco-editor [options]="readEditorOptions" [(ngModel)]="originLogVal" (onInit)="initViewEditor($event, false)"> </ngx-monaco-editor> public initViewEditor(editor: editor.ICodeEditor): void { // 這個editor就是實例 // 下面方法中的editor就是這里的editor this.editor = editor }
3、獲取當前光標位置
editor.getPosition()
4、獲取當前鼠標選中的文本
editor.getModel().getValueInRange(editor.getSelection());
5、修改光標位置
editor.setPosition({ column: 1, lineNumber: 1, });
6、滾動指定行到可視區(qū)中間
editor.revealLineInCenter(1);
7、綁定事件
editor.onMouseDown(event => { // do something }); editor.onKeyDown(event => { // do something });
8、保存/恢復快照
const snapshot = editor.saveViewState(); editor.restoreViewState(snapshot);
9、阻止某個事件
// eg 組件默認的搜索快捷鍵 function isMac() { return /macintosh|mac os x/i.test(navigator.userAgent); } editor.onKeyDown(event => { if ( (isMac() && event.browserEvent.key === 'f' && event.metaKey) || (!isMac() && event.browserEvent.key === 'f' && event.ctrlKey) ) { event.preventDefault(); event.stopPropagation(); } });
更多編程相關知識,請訪問:編程視頻??!
以上是淺析angular中怎么使用monaco-editor的詳細內(nèi)容。更多信息請關注PHP中文網(wǎng)其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

Angular.js是一種可自由訪問的JavaScript平臺,用于創(chuàng)建動態(tài)應用程序。它允許您通過擴展HTML的語法作為模板語言,以快速、清晰地表示應用程序的各個方面。Angular.js提供了一系列工具,可幫助您編寫、更新和測試代碼。此外,它還提供了許多功能,如路由和表單管理。本指南將討論在Ubuntu24上安裝Angular的方法。首先,您需要安裝Node.js。Node.js是一個基于ChromeV8引擎的JavaScript運行環(huán)境,可讓您在服務器端運行JavaScript代碼。要在Ub

angular中怎么使用monaco-editor?下面本篇文章記錄下最近的一次業(yè)務中用到的 monaco-editor 在 angular 中的使用,希望對大家有所幫助!

隨著互聯(lián)網(wǎng)的飛速發(fā)展,前端開發(fā)技術也在不斷改進和迭代。PHP和Angular是兩種廣泛應用于前端開發(fā)的技術。PHP是一種服務器端腳本語言,可以處理表單、生成動態(tài)頁面和管理訪問權限等任務。而Angular是一種JavaScript的框架,可以用于開發(fā)單頁面應用和構建組件化的Web應用程序。本篇文章將介紹如何使用PHP和Angular進行前端開發(fā),以及如何將它們

本篇文章繼續(xù)Angular的學習,帶大家了解一下Angular中的元數(shù)據(jù)和裝飾器,簡單了解一下他們的用法,希望對大家有所幫助!

本篇文章帶大家深入了解一下angular的狀態(tài)管理器NgRx,介紹一下NgRx的使用方法,希望對大家有所幫助!

本篇文章給大家分享一個Angular實戰(zhàn),了解一下angualr 結(jié)合 ng-zorro 如何快速開發(fā)一個后臺系統(tǒng),希望對大家有所幫助!

身份驗證是任何Web應用程序中最重要的部分之一。本教程討論基于令牌的身份驗證系統(tǒng)以及它們與傳統(tǒng)登錄系統(tǒng)的區(qū)別。在本教程結(jié)束時,您將看到一個用Angular和Node.js編寫的完整工作演示。傳統(tǒng)身份驗證系統(tǒng)在繼續(xù)基于令牌的身份驗證系統(tǒng)之前,讓我們先看一下傳統(tǒng)的身份驗證系統(tǒng)。用戶在登錄表單中提供用戶名和密碼,然后點擊登錄。發(fā)出請求后,通過查詢數(shù)據(jù)庫在后端驗證用戶。如果請求有效,則使用從數(shù)據(jù)庫中獲取的用戶信息創(chuàng)建會話,然后在響應頭中返回會話信息,以便將會話ID存儲在瀏覽器中。提供用于訪問應用程序中受
