在 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 后将更新同步到你的数据模型中。
网友回复
有没有不依赖embedding向量的RAG技术?
有没有支持实时打断语音通话并后台帮你执行任何的ai模型?
开源ai大模型文件格式GGUF、MLX、Safetensors、 ONNX 有什么区别?
出海挣钱支付收款PayPal、Wise 、PingPong、Stripe如何选择?
如何实现类似google的图片隐形水印添加和识别技术?
linux上如何运行任意windows程序?
ai能写出比黑客还厉害的零日漏洞等攻击工具攻击任意软件系统工程?
js如何获取浏览器的音频上下文指纹、Canvas指纹、WebGL渲染特征?
为啥ai开始抛弃markdown文本,重新偏好html文本了?
网站有没有办法鉴别访问请求是由ai操控chrome-devtools-mcp发出的?


