问题 #1095💬 已回答提出于 2018年5月8日作者 Chilli-B0 个反应

预选一个特性选择选项

快速解答作者 artf

你好,@Chilli-B,如果你能提供一个你想实现的目标的现场示例会更好。顺便说一句,如果性状被正确创建,它应该会与组件模型同步,例如: “''js { 类型:“选择”, 选项:[ { 值:'h1', 名称:'H1'}, { 值:'h2', name: 'H2'}, ], 标签:“TAG”, 设置与模型属性相同的名称,并添加 changeProp 名称:“tagName”, 变革提案:1, } ```

阅读下方完整回答 ↓

问题

你好, 我想让你在选择特质的选项数组里,在“name”和“value”旁边添加第三个参数,这个参数是“已选中”,以便预选其中一个特质选项。 详细说明: 我通过一个选择特征扩展了头部组件,涵盖了所有头部类型 h1 到 h6。现在我想在事件函数 'component:selected' 中添加一个功能,这样当点击组件时,首部类型的特质选择会直接切换到拟合选项,前提是包含了首部标签(例如,h2 标签被点击=>次选择选项是预选的) 我在想是否有可能在 grapesJS 里实现这一点,否则我需要通过 DOM 用 jQuery 来实现,但我觉得这并不是一个很优雅且具备未来需求的解决方案。 大致是这样的: editor.on('component:selected', function(arg) { 重置所有选项 arg[1].get('traits').where({name: 'header-type'})[0].attributes.options.filter((el) => typeof el.selected!='undefined').forEach((el) => el.selected = false); 设置新选中选项 var tagName = arg[1].attributes.tagName; arg[1].get('traits').where({name: 'he...

回答(3)

artf2018年5月10日

你好,@Chilli-B,如果你能提供一个你想实现的目标的现场示例会更好。顺便说一句,如果性状被正确创建,它应该会与组件模型同步,例如: “''js { 类型:“选择”, 选项:[ { 值:'h1', 名称:'H1'}, { 值:'h2', name: 'H2'}, ], 标签:“TAG”, 设置与模型属性相同的名称,并添加 changeProp 名称:“tagName”, 变革提案:1, } ```

Chilli-B2018年5月10日

你好,@artf,谢谢你的回复。下面是我如何通过扩展头部组件的文本模型来创建这个特性。 问题不在于同步。问题是,当我在画布中添加完整的布局,包含h2或h3标签(或其他任何标签),点击它们时,设置中的标题类型选择(特质)总是显示为“标题1”,因为这是选择中的第一个选项,且无法给任何选择选项赋予“已选中”属性。 var txtType = domComps.getType('text'); var txtModel = txtType.model; var txtView = txtType.view; domComps.addType('head', { model: txtModel.ext...

artf2018年5月14日

问题不在于同步。问题是,当我在画布中添加完整的布局,包括h2或h3标签(或其他任何标签),并且点击它们时,设置(特质)中的标题类型选择总是保持在“标题1”,因为这是选择中的第一个选项,且无法赋予任何选择选项“已选中”属性

这正是我说的那种同步方式......你试过我的例子吗???

相关问答

通过相似的问题讨论继续研究。

问题 #1586

动态更新特性选择选项

我尝试过这样做来更新特质选择。 var updateTrait = function(id, name) { var typeTrait = model.get('traits').where({name: 'type'})[0]; var options = typeTrai...

2 个回答更新于 2020年2月13日

问题 #1658

即使特征值为真,复选框特征也不会按勾选方式加载

你好, 我使用的是 Grapesjs 版本 0.14.33。 我在加载表单时加载一些组件,有一个带有复选框特征的组件。 当我用编辑器加载组件时,DomComponents.load,我加载的复选框是true,这意味着特征应该已经勾选了该复选框。 这样不行。 但是,当我用 edi...

3 个回答更新于 2019年12月20日

问题 #710

让整个元素都能拖动,而不仅仅是手柄

我正在修改手柄,除了有手柄外,我还希望整个元素都能拖拽。看代码,我猜我只需要在select时给可拖拽的元素附加'tlb-move'命令。 上述代码在选择状态下,将选中的组件写入控制台。从这里开始,我认为需要添加一个用于拖拽的事件监听器,但我尝试用 '.on()' 附加监听器都失...

3 个回答更新于 2019年11月7日

问题 #687

在使用 editor.on('component:add',function(){} 更新组件属性后;蓝色盒子的商品不正确。

在使用 editor.on('component:add',function(){} 更新组件属性后; 蓝色方框的物品(指动作图标)不正确。复制图标不应该显示。 ![图片](https://user-images.githubusercontent.com/2859394/34...

3 个回答更新于 2019年9月18日

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

直接跳转到市场上的插件分类页面。