如何动态渲染美人鱼流程图?

2024-01-09

我正在使用mermaid https://mermaid-js.github.io/mermaid/#/n00b-gettingStarted用于构建流程图的库。其工作原理是在块内有一个伪代码 - 特殊语法的命令,在此基础上在块中构建流程图。

我希望能够动态更改块的内容,并且脚本每次都会重建框图。

我应该如何设置初始化?也许我应该在设置中添加一些回调函数?

我是这样初始化的:

mermaid.init({/*what setting parameters should be here?*/}, ".someClass"/*selector*/);

但该脚本不会呈现任何新命令。它仅呈现加载文档时存在的命令。

换句话说,我想在线编辑流程图。

function edit() {
  const new_mermaid = document.createElement("div");
  new_mermaid.classList.add("mermaid");
  new_mermaid.classList.add(".someClass");
  /*new_mermaid.innerHTML =
            `graph TD
   1[point 1] --> 2[point 2]`;*/
  // it doesn't work when I append the new   element dynamically! 
  new_mermaid.innerHTML = document.querySelector(".mermaid").innerHTML;
  // it works always.
  document.body.append(new_mermaid);
  /* document.querySelector(".mermaid").innerHTML = 
            `
    graph TD
    A --> B`*/
  // it doesn’t work with event listener
}
edit(); // it works
document.body.addEventListener("click", edit)
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
<script>
  // how to do it correctly?
  mermaid.init({
    noteMargin: 10
  }, ".someClass");
</script>

<div class="mermaid someClass">
  graph TD
  1--> 2
  3 --> 2
  2 --> 1
</div>

看来,我知道答案了。看下面的解决方案:

  document.querySelector("button").addEventListener("click", (e) => {
  const output = document.querySelector(".flowchart");
  if (output.firstChild !== null) {
    output.innerHTML = "";
  }
  const code = document.querySelector(" textarea").value.trim();
  let insert = function (code) {
    output.innerHTML = code;
  };
  mermaid.render("preparedScheme", code, insert);
});
   <script src="https://unpkg.com/[email protected] /cdn-cgi/l/email-protection/dist/mermaid.min.js"></script>

<p>Input your data:</p>
<div class="input">
  <textarea style="width:300px; height:200px"></textarea>
  <br>
  <button>render</button>
</div>
<div>
  <p>output:</p>

  <div class="render_container" style = "width:300px; height:200px; border:thin solid silver" >
      <div class="flowchart"></div>
    </div>
  </div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何动态渲染美人鱼流程图? 的相关文章

  • 单击输入[复选框]的标签将触发父级单击事件两次(淘汰)

    考虑这把小提琴 http jsfiddle net 9rkrahm6 我有一个
  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • 关闭选项卡时要求确认[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我在某些浏览器上关闭页面时 我希望出现一个消息框 并询问我是否真的要关闭页面 有两个按钮 如果我单击No那么这个标签就不会被关闭 我怎样
  • 不和谐机器人 |不和谐.js |类型错误:无法读取未定义的属性“长度”

    我正在制作一个 Discord 机器人 并且正在使用 CodeLyon 的视频作为参考 该错误位于我的 message js 文件中 该文件包含以下内容 require dotenv config create cooldowns map
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 检查 JavaScript 字符串是否为 URL

    JavaScript 有没有办法检查字符串是否是 URL 正则表达式被排除在外 因为 URL 很可能是这样写的stackoverflow 也就是说它可能没有 com www or http 如果你想检查一个字符串是否是有效的 HTTP UR
  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • Firefox 书签探索未超过 Javascript 的第一级

    我已经编写了一些代码来探索我的 Firefox 书签 但我只获得了第一级书签 即我没有获得文件夹中的链接 e g 搜索引擎 雅虎网站 谷歌网站 在此示例中 我只能访问 Search engines 和 google com 不能访问 yah
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 为 illustrator 导出脚本以保存为 web jpg

    任何人都可以帮我为 illustrator CC2017 编写一个脚本 将文件以 JPG 格式导出到网络 旧版 然后保存文件并关闭 我有 700 个文件 每个文件有 2 个画板 单击 文件 gt 导出 gt 另存为 Web 旧版 然后右键文
  • Safari 支持 JavaScript window.onerror 吗?

    我有一个附加到 window onerror 的函数 window onerror function errorMsg url line window alert asdf 这在 firefox chrome 和 IE 中工作正常 但在 s
  • 如何在 pg-promise 中设置模式

    我正在搜索的文档pg 承诺 https github com vitaly t pg promise特别是在创建客户端时 但我无法找到设置连接中使用的默认架构的选项 它始终使用public架构 我该如何设置 通常 为数据库或角色设置默认架构
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • 使用 UIDocumentPickerViewController 在 Swift 中导入文本

    我目前正在学习 iOS 开发课程 作为我项目的一部分 我的任务是使用UIDocumentPickerViewController导入文本 我发现的每个例子要么 a 用 Objective C 编写 要么 b 用于导入UIImage file
  • 在 Clojure 中将“map”与不同大小的集合一起使用

    我想了解在 clojure 中操作不同大小的集合的惯用方式 有没有办法告诉函数 map 用一些默认值填充集合的其余部分 举个例子 假设我有 3 个向量 def x 1 2 3 4 def y 1 2 3 4 5 def z 1 2 3 4
  • 根据选择器中选择的应用程序为 ACTION_SEND 意图设置不同的文本[重复]

    这个问题在这里已经有答案了 如何设置不同的内容 不同的文本 图像 无图像 ACTION SEND意图 基本上我想要电子邮件的长文本和图像 Facebook 的长文本和 Twitter 的短文本 我知道这个问题 https stackover
  • Excel:如果满足条件,则从范围内进行 TEXTJOIN

    我在 Excel 中遇到了一个问题 但我不知道如何解决 上图中有两个表 表 1 列出了个人之间交换的礼物 并标明了赠送者和接受者 我使用 礼物 和 人 是为了更容易在这里讨论 实际上 这些是交换控制信号的设备 这张表可能有数百行长 表 2
  • 正则表达式查找仅包含一个斜杠的 URL

    我正在测试一个网站 需要使用正则表达式来定位我想要包含在测试中的页面 我将仅定位 URL 中都有一个斜杠的产品页面 URL 不显示http 在他们中 以下是我需要匹配的 URL 我想要的看起来像这样 www example com just
  • 如何获取 NSRunningApplication 的参数?

    如何获取启动期间使用的参数列表NSRunningApplication 类似于我跑步时看到的ps aux let workspace NSWorkspace shared let applications workspace running
  • 使用 importlib.util 检查库时出错

    我正在尝试使用 importlib 库来验证 nmap 库是否安装在执行 Python 3 5 2 中的脚本的计算机上 我正在尝试使用importlib util find spec nmap 但收到以下错误 gt gt gt import
  • 鼠标悬停在按钮上的问题

    我正在使用 Twitter Bootstrap 当我将鼠标悬停在btn primary button 这是我的代码 div class navbar navbar fixed top div class navbar inner div c
  • 如何使用c#检查xml文件是否为空

    大家好 我想检查我的 xml 文件是否为空 我正在尝试将一个 xml 数据更新为另一个 为此我正在使用以下代码 现在请告诉我如何检查我的 xml 文件是否有数据 这是我用来更新 xml 文件的代码 protected void CheckU
  • 使用索引搜索相似的单词

    我需要使用某种模糊搜索 例如来自 Oracle 的模糊搜索 并使用索引来搜索数据库表 因为我不需要表扫描 有大量数据 我想忽略大小写 语言特殊内容 和特殊字符 如 等 搜索 maria cool 应该得到 maria COOL 和 Mar
  • Spring Security + Keycloak:登录后403

    我尝试重现一个https www baeldung com spring boot keycloak教程进行了一些简化 我的 Keycloak 服务器也在另一台机器上 由于弃用 配置也略有变化antMatchers Configuratio
  • RestController 设计之争 - Spring Boot REST API

    我对 REST API 开发还很陌生 我决定使用 Spring Boot 创建一个博客应用程序 但我真的在为应用程序的设计和结构而苦苦挣扎 现在我的应用程序由帖子和评论模型和存储库组成 对于这两个模型 我创建了服务类 PostService
  • iPhone 5 上的 Sqlite 磁盘 I/O 错误

    我有一个应用程序大量使用 SQLite 它在模拟器和 iPhone 4 4s 上都能完美运行 当我在 iphone 5 及更高版本上安装时 出现此错误 Unknown error finalizing or resetting statem
  • 在浏览器外通过 Silverlight 调用 Office Communicator

    当浏览器耗尽时 我需要调用 Office Communicator 创建聊天窗口并直接从 Silverlight 拨打电话 当在浏览器中运行时 我这样做并且效果很好 System Windows Browser HtmlPage Windo
  • Angular/Cordova:Android 设备上的 MIME 类型问题

    我创建了一个 Cordova 应用程序 它在创建新项目时仅提供默认的 Angular 欢迎页面 它在浏览器中运行良好 通过 Android Studio 在模拟器上运行它时效果很好 当我在 Android 设备上运行它时 我得到一个空白页面
  • 引用名称包含点的 bash 变量

    我有一个 bash 变量 agent1 ip with 192 168 100 137作为它的价值 当我在中提到它时echo像这样 echo agent1 ip 结果是 ip 我如何访问该值 UPDATE 我的变量是 Bash 本身不理解带
  • HTML 重写的最佳替代方案是什么?

    考虑这个文档片段 div h1 An article about John h1 p The frist paragraph is about John p p The second paragraph contains a a href
  • 未处理的异常类型错误

    我以前从未遇到过此错误 所以我不知道该怎么做或它意味着什么 未处理的异常类型OperationApplicationException 它出现在这段代码中 public void putSettings SharedPreferences
  • 如何修复“重大更改:webpack < 5 默认情况下用于包含 Node.js 核心模块的 polyfills”错误?

    我正在尝试构建一个 React 应用程序 但每次运行 npm start 时 都会收到此消息 找不到模块 错误 无法解析 Users abdus Documents GitHub keywords tracker node modules
  • 如何动态渲染美人鱼流程图?

    我正在使用mermaid https mermaid js github io mermaid n00b gettingStarted用于构建流程图的库 其工作原理是在块内有一个伪代码 特殊语法的命令 在此基础上在块中构建流程图 我希望能够