典型代码分别如下:
JavaScript function init() { dataModel = new ht.DataModel(); graphView = new ht.graph.GraphView(dataModel); graphView.addToDOM(); let url = 'displays/admin/AiotOS/adApps/MQTT客户端.json'; ht.Default.xhrLoad(url, function(text) { var json = ht.Default.parse(text); dataModel.deserialize(json); //数据模型来反序列化加载图纸! }); } |
JavaScript function init() { dataModel = new ht.DataModel(); graphView = new ht.graph.GraphView(dataModel); graphView.addToDOM();
let url = 'displays/admin/AiotOS/adApps/MQTT客户端.json'; ht.Default.xhrLoad(url, function(text) { var json = ht.Default.parse(text); 直接加载 //graphView.deserialize(json); //或者传入加载完成后反序列化后回调函数 graphView.deserialize(json, function(json, dm, gv, datas) { //反序列化后处理 }) } } |
注意:如果用数据模型来反序列化:dataModel.deserialize(json),如果在图纸的反序列化后的属性中有代码并且调用到传入的gv参数,那么会报错!
dataModel.deserialize加载图纸,编辑器中配置的图纸反序列化后函数会被调用到,但默认无传参!
graphView.deserialize加载图纸反序列化后的回调函数,与图纸的onPostDeserialize反序列化函数,图纸优先调用,然后是代码的回调函数调用。