在 contentEditable 元素中的光标处插入 Ember 组件

2023-12-10

我有一个内容可编辑div,我希望允许用户在其中键入文本,以及插入输入元素,例如文本框和下拉列表。通过允许用户单击可编辑 div 外部的按钮,元素将插入到光标当前所在的位置。

按照这个一般示例,我让它运行得很好:

http://jsfiddle.net/jwvha/1/

这基本上做了一个

document.selection.createRange().pasteHTML(html);

问题是它期望将 HTML 传递到在光标处插入元素的函数中。对于更复杂的事情,我希望能够插入具有可用完整 html/js 逻辑的 Ember 组件,而不是尝试将所有 html/js 放入字符串中。

有没有一种方法可以以编程方式创建组件并将其插入到光标处的 contentEditable 元素中,同时保持其功能(例如操作等)。

我目前使用的是 Ember 2.5。


我想你可以使用一个叫做 ember-cli 的插件余烬虫洞。这个组件的作用基本上是将你的 ember 组件的 dom 移动到一个包含id属性。

e.g.

document.selection.createRange().pasteHTML('<div id="my-component-id"></div>');

use 我的组件 ID到余烬虫洞destinantion属性:

{{#ember-wormhole to="my-component-id"}}
    {{my-component...}}
{{/ember-wormhole}}

关于这一点,你可以这样做:

click() {
    let componentId = 'my-component-id';

    document.selection.createRange().pasteHTML(`<div id="${componentId}"></div>`);
    this.get('components').pushObject(componentId); // components being an array
}

在你的车把模板中:

{{#each components as |componentId|}}
    {{#ember-wormhole to=componentId}}
        {{my-component...}}
    {{/ember-wormhole}}
{{/each}}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 contentEditable 元素中的光标处插入 Ember 组件 的相关文章

  • 在 Codeigniter 中使用/嵌入 Ember js

    我即将开始开发一个 Web 应用程序 使用 Ember js 作为前端技术 使用 Codeigniter 作为后端 我遇到的问题是如何在 codeigniter 中嵌入或使用 ember js 可以通过 Web 服务从 codeignite
  • 告诉 ember.js 对其模型的“id”使用不同的密钥

    我陷入了不应该回来的境地idAPI 端点中的字段 我需要告诉 ember 使用slug字段为 而不是id I tried DS RESTAdapter map App Post id key slug 虽然这对于App Post find
  • 是否可以使用脚本标签加载车把模板?或者在 Ember.js 中以编程方式定义车把模板

    很简单 我不想在 html 文件中定义所有车把模板 我试过这个 但这没有用 我是否可以不以编程方式定义模板 甚至只是加载车把文件 以便我可以重用 而且我觉得这使事情更易于维护 我尝试用 ajax 加载它们并将它们附加到头部 这工作正常 我可
  • 使用变量名调用 Handlebars {{render}}

    有没有办法将变量上下文传递给 render helper 例如 我的模型具有多态关系 我想为每种不同类型呈现适当的视图 无需编写一整串if声明 my events模板看起来像这样 ul each event in model li even
  • ember js 子视图和 didinsertelement 事件

    我正在写一个Ember View 它将树结构变成菜单 我需要递归 所以我在视图模板中使用的是 view helper 它递归地调用自身来构建嵌套 ul li 结构 我需要的是一个钩子来调用一些 jQuery 插件来将此结构转换为菜单 当我从
  • 未找到命令“ember”

    看来我搞砸了 ember cli 安装 我已经使用 sudo 安装了 npm 但是在阅读了 npm 上 ember cli 和 sudo 的一些问题后 我按照此处的说明卸载并重新安装https gist github com isaacs
  • ember-data-1.0.0 activemodeladapter 错误在传递给“push”的哈希中包含“id”

    我在后端使用 ember data 和带有 Rails 和 mongoid mongodb 的 activemodel 适配器 每当我向 Rails 应用程序发出请求时 emberjs 都会显示返回的数据 但在 chrome 开发人员控制台
  • Ember Data 中出现“超出最大调用堆栈大小”错误的原因可能是什么?

    Ember 发布新版本 3 6 0 后 我开始在控制台中收到错误 rsvp js 24 未捕获 RangeError 超出最大调用堆栈大小 在 WeakMap get 在 getCacheFor metal js 25 在 Computed
  • 如何返回延迟承诺并使用 Ember.Deferred 创建模型?

    我正在尝试创建一个User current 在我的应用程序中 它使用从我的服务器提取数据 getJSON users current function data 我正在使用 Discourse 使用的 Singleton 方法 该方法执行以
  • Ember.js - 从计算属性返回 unicode 字符

    我试图从计算属性返回 unicode 字符 但是 不断逃脱 amp 我什至尝试过像这样返回 Handlebars SafeString return new Ember Handlebars SafeString 61573 产生相同的结果
  • Ember 集成测试在访问路线后挂起

    我正在尝试做一个简单的集成测试 我从 ember cli 网站上的集成示例开始 现在 当我在浏览器 localhost 4200 tests 中测试时 以下情况会路由到我期望的位置 但随后它只是挂起并且永远不会成功或失败 import Em
  • 使用 Node.js 的前端 javascript 框架 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • EmberJS 支持单字母单词模型吗?

    我无法真正确定问题是 Ember 还是 Ember 数据 或者甚至是一个问题 但发生的情况如下 假设你的模型被称为tell me a story 如果您使用 ActiveModelAdapter 这将是您的 JSON 应该提供的名称 无论如
  • Ember.js - 渲染到插座中的默认模板?

    所以我有一个如下所示的页面 Nav Bar Content 我希望导航栏在所有页面上保持不变 所以我使用的方法是将我的页面设置如下 Nav Bar outlet 这太棒了 我现在可以将不同的页面渲染到不同路线的出口中 但是 如果我希望将默认
  • create() 时不会调用观察者

    我有一个Ember Mixin它观察到它的属性之一 这里bar baz 我扩展了这个 Mixin 并设置了bar baz in the create 参数 但我的观察者没有被调用 这是我的代码 App FooMixin Ember Mixi
  • 重写 buildURL 方法以包含父模型的 id

    关于 ember data 和子类化 DS RESTAdapter 来覆盖buildURL 我有两个端点 可以说他们是 example com users user id example com users user id images 将
  • 如何在重新渲染 Ember 视图的一部分时随时运行代码?

    我的目标是拥有一个类似 Facebook 的按钮 可以有条件地出现在 Ember 视图中 我的模板是 if condition Click Like div class fb like fb edge widget with comment
  • ObjectController 上的绑定 - Ember.js

    当您尝试将绑定添加到ObjectController它不起作用 App FailController Em ObjectController extend content null myBinding App router myContro
  • Ember 数据 - 动态段和查询参数在一起?

    使用 Ember 1 8 0 和 Ember Data 1 0 0 beta 11 Ember 商店的findQuery 函数似乎无法处理动态段 或者至少我无法在任何地方的文档中找到它 例如 给定以下路线 MyApp Router map
  • Ember-cli 夹具加载

    我确信我错过了一些小而愚蠢的东西 但似乎无法加载我的装置 这是我有 应用程序 模型 todos js import DS from ember data var Todo DS Model extend title DS attr stri

随机推荐