博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(3)Gojs model简介
阅读量:4958 次
发布时间:2019-06-12

本文共 1942 字,大约阅读时间需要 6 分钟。

(3)Gojs model简介

在GoJS中,model用来存储表的基本数据,包括node、link等具体对象和属性,与其在视觉上的展示效果不相关。model中往往只保存相对简单的数据,最方便且持久化方法就是存成json或者xml这种格式的文本。

model.nodeDataArray = [   { key: "Alpha",text:"α" },   { key: "Beta" ,text:"β"} ];

①修改model中的数据

此model无法检测到nodeDataArray数组的修改或任何节点数据对象的修改。如果要从nodeDataArray添加或删除节点数据,需要调用addNodeData或removeNodeData等方法。如果想要修改某个node对象,取决于你想修改的属性是model需要知道的结构属性还是只适用于数据绑定或其他目的的属性。对于结构属性,需要调用以"set", "add", "insert", or "remove"等具体的方法,如 setKeyForNodeData, setCategoryForNodeData, GraphLinksModel.setToKeyForLinkData, or GraphLinksModel.setGroupKeyForNodeData等;对于第二种属性,如用于绑定并支持撤销/重做的属性,需要调用setDataProperty方法。

每个model都有自己的UndoManager,默认为禁用。 启用时需要将UndoManager.isEnabled设置为true,以使UndoManager记录model的更改,并为用户执行撤消和重做。

②model的监听事件

每个model都可以通过Model.addChangedListener注册一个监听器,以下方法可以监听model结构属性的改变:

  • "nodeDataArray", Model.nodeDataArray数组被替换式触发
  • "nodeCategory", 调用Model.setCategoryForNodeData时触发
  • "nodeGroupKey", 调用GraphLinksModel.setGroupKeyForNodeData时触发
  • "linkDataArray", GraphLinksModel.linkDataArray数组被替换式触发
  • "linkFromKey", 调用GraphLinksModel.setFromKeyForLinkData时处罚
  • "linkToKey", 调用GraphLinksModel.setToKeyForLinkData时触发
  • "linkFromPortId", 调用GraphLinksModel.setFromPortIdForLinkData时触发
  • "linkToPortId", 调用GraphLinksModel.setToPortIdForLinkData时触发
  • "linkLabelKeys", 调用GraphLinksModel.setLabelKeysForLinkData时触发
  • "linkCategory", 调用GraphLinksModel.setCategoryForLinkData时触发
  • "nodeParentKey", 调用TreeModel.setParentKeyForNodeData时触发
  • "parentLinkCategory", 调用TreeModel.setParentLinkCategoryForNodeData时触发

    ③model的部分常用属性

  • nodeDataArray 获取或设置与图中的node,group或非链接部件对应的节点数据对象数组,初始值为空数组。
  • nodeKeyProperty 获取或设置返回每个node数据对象的唯一ID号或字符串的data属性的名称。
  • nodeCategoryProperty 获取或设置返回指定数据类别的字符串的node数据属性的名称。
  • name 获取或设置model的名称。
  • modelData 获取一个JavaScript对象,该对象可以保存整个model的中我们自定义的属性值,而不仅仅是一个node或一个link。
  • isReadOnly 获取或设置是否可以修改此model,例如添加node。
  • undoManager 获取或设置此model的underunderManger。
    更多的属性可以查看官方文档 ,一个简单的demo:

④model的常用方法后续补齐

转载于:https://www.cnblogs.com/Nancy-wang/p/6957791.html

你可能感兴趣的文章
后台自定义导航增加分类树N级下拉+利用JQUERY
查看>>
python导包的问题
查看>>
QTP 捕获对象模式切换
查看>>
poi操作Excel相关对象属性介绍及中级应用
查看>>
mysql数据类型
查看>>
1.MyBaits无代理全套增删改
查看>>
spring(二)
查看>>
Oracle的汉字转拼音首字母的函数
查看>>
排序算法
查看>>
GAN生成图像论文总结
查看>>
(转)让ubuntu9.10开机自动挂载NTFS分区
查看>>
presentModalViewController 的动画效果
查看>>
windows mobile 程序控件置顶
查看>>
ORA-02447: cannot defer a constraint that is not deferrable
查看>>
EditPlus注册码
查看>>
servlet+jsp+java实现Web应用
查看>>
乔坟往事-目录
查看>>
MAMP添加mysql的环境变量
查看>>
css3实现漂亮的倒影效果
查看>>
c# int类型的转datetime类型
查看>>