在 GoJS 中,如果你想要设置 TextBlock 可以编辑(editable),并且在编辑完成后将更新同步到 model 中,你可以通过以下步骤实现:
设置 TextBlock 可编辑: 使用 GoJS 中的 TextEditingTool,可以使 TextBlock 可编辑。你需要在 TextBlock 的模板中设置 editable: true。
$(go.TextBlock,
{
editable: true,
// 其他属性和样式
},
new go.Binding("text", "text").makeTwoWay() // 绑定到数据模型的文本属性,并启用双向绑定
) 在上面的示例中,editable: true 允许用户编辑 TextBlock。
双向绑定到数据模型: 确保你的 TextBlock 绑定了数据模型中的文本属性,并启用了双向绑定。这样当用户编辑 TextBlock 时,修改将自动同步到数据模型中。
new go.Binding("text", "text").makeTwoWay() 这段代码将 TextBlock 的文本内容与数据模型中名为 "text" 的属性双向绑定,确保任何编辑都会更新到模型中。
保存更新到模型: 在 GoJS 应用中,你可能会监听 TextBlock 编辑完成的事件,然后手动保存更新到模型中。例如,你可以监听 TextEditingTool 的 TextEdited 事件:
myDiagram.toolManager.textEditingTool.textEdited = function(tb, oldstr, newstr) {
// 在这里更新你的数据模型
// 例如,假设 node 是你的节点对象
myDiagram.model.setDataProperty(node.data, "text", newstr);
}; 上面的代码片段中,textEdited 事件处理程序在文本编辑完成时调用,你可以在这里更新数据模型中对应节点的文本属性。
通过这些步骤,你可以实现在用户编辑 GoJS TextBlock 后将更新同步到你的数据模型中。
网友回复
如何将linux服务器的文件目录映射到windows电脑磁盘?
Docling 与 MarkItDown 两个库有啥不同?
豆包收费后国产其他ai软件也会跟进收费吗?
JPEG 与 HEIF图片格式区别?
centos7版本太旧无法安装python3.11,如何在docker中运行python3.11?
python如何做个RPA按键精灵的程序?
写一个windows的cmd的python代码如何在命令行中捕获获取复制粘贴的图片?
如何将别人爆款的抖音短视频短剧文案提取为seedance2的提示词?
阿里云域名dns云解析10万次日限额如何应对?
windows电脑如何提交上架ipa苹果应用?


