整个示例主要就是将HT for Web的DataModel数据模型信息进行序列化和反序列化,这个过程很简单通过dataModel.serialize()将模型序列化成JSON字符串,通过dataModel.deserialize...['DataCount'] = dataModel.size(); console.log(dataModel.size() + ' datas are saved'); return...value; } function restore(dataModel){ var value = window.localStorage['DataModel']; if(value...value; } function restore(dataModel){ var value = getCookieValue('DataModel'); if(value){...() + ' datas are saved'); }; return dataModel.serialize(); } function restore(dataModel){
做过的项目中曾经有这样的需求:货品录入(商品入库),弹框弹出所有的货品(很多),选择其中的一个,则下次弹框弹出所有货品时不再显示选择了的那件货品。当然,录入功能...
采用QuadTree算法将大大减少需要测试碰撞的次数,从而提高游戏刷新性能,本文例子基于HT for Web的图形引擎,通过GraphView和Graph3dView共享同一数据模型DataModel,...我构建了HT的GraphView和Graph3dView两个组件,通过ht.widget.SplitView左右分割,由于两个视图都共享同一DataModel,因此我们剩下的关注点仅是对DataModel...所有代码如下供参考: function init(){ d = 200; speed = 8; dataModel = new ht.DataModel();...g3d = new ht.graph3d.Graph3dView(dataModel);...g2d = new ht.graph.GraphView(dataModel); mainSplit = new ht.widget.SplitView(g3d
在服务端我们该如何创建 HT 的 DataModel 和 ForceLayout 呢?.../build/ht-debug.js').ht, dataModel = new ht.DataModel(), reloadModel = require("...../util.js").reloadModel; reloadModel(dataModel, { A: 3, B: 5 }); require("../../.....(edge); return edge; } function reloadModel(dataModel, info){ dataModel.clear(); var ip...; i++) { var iNode = createNode(dataModel, ip + count++); createEdge(dataModel, root,
整个示例主要就是将HT for Web的DataModel数据模型信息进行序列化和反序列化,这个过程很简单通过dataModel.serialize()将模型序列化成JSON字符串,通过dataModel.deserialize...['DataCount'] = dataModel.size(); console.log(dataModel.size() + ' datas are saved'); return ...value; } function restore(dataModel){ var value = window.localStorage['DataModel']; if(value... value; } function restore(dataModel){ var value = getCookieValue('DataModel'); if(value){...() + ' datas are saved'); }; return dataModel.serialize(); } function restore(dataModel){
接下来 HT 将利用 ht.Default.xhrLoad 函数载入 JSON 场景,并用 HT 封装的 DataModel.deserialize(json) 来反序列化,并将反序列化的对象加入 DataModel...我们这边通过在 JSON 中设置 Data 对象的 tag 属性,在代码中通过 dataModel.getDataByTag(tag) 函数来获取该 Data 对象: var fan1 = dataModel.getDataByTag...('fan1'); var fan2 = dataModel.getDataByTag('fan2'); var camera1 = dataModel.getDataByTag('camera1');...var camera2 = dataModel.getDataByTag('camera2'); var camera3 = dataModel.getDataByTag('camera3'); var...redAlarm = dataModel.getDataByTag('redAlarm'); var yellowAlarm = dataModel.getDataByTag('yellowAlarm
DateModel 作为承载 Data 数据的模型,管理着Data数据的增删以及变化事件派发, HT 框架所有组件都是通过绑定 DataModel,以不同的形式呈现到用户界面;同时组件也会监听 DataModel...var dataModel = new ht.DataModel(); var graphView = new ht.graph.GraphView(dataModel); 通过以下代码来进行一些基础操作上的设置...flag); changeAlarmColor(dataModel, 'Alarm2', flag); changeAlarmColor(dataModel, 'Alarm3', flag);...flag; }, 2000); function changeAlarmColor(dataModel, tag, flag) { var tag = dataModel.getDataByTag...setInterval(function () { changePumpState(dataModel, 'pump1'); changePumpState(dataModel, 'pump2'
= new ht.DataModel();// 数据容器,用来存储数据节点 graphView = new ht.graph.GraphView(dataModel);// 拓扑组件 graphView.addToDOM...之后不允许修改 id 值,可通过 dataModel.getDataById(id) 快速查找 Data 对象。...('fan1'); var fan2 = dataModel.getDataByTag('fan2'); var camera1 = dataModel.getDataByTag('camera1');...var camera2 = dataModel.getDataByTag('camera2'); var camera3 = dataModel.getDataByTag('camera3'); var...redAlarm = dataModel.getDataByTag('redAlarm'); var yellowAlarm = dataModel.getDataByTag('yellowAlarm
= new ht.DataModel(); g3d = new ht.graph3d.Graph3dView(dataModel);...= new ht.DataModel(); forceLayout = new ht.layout.Force3dLayout(dataModel); forceLayout.onRelaxed =...function(){ var result = {}; dataModel.each(function(data){ if(data instanceof ht.Node...if(data){ data.p3(info.moveMap[id]); dataModel.sm().as(data);...} } } else{ reloadModel(dataModel, info); } }, false
; bool isCheck; int likeCount; ItemModel(this.title, this.isCheck, this.likeCount); } class DataModel...return ListView.builder( itemBuilder: (context, index) { return SelectorDataModel, ItemModel>(...Expanded( child: SelectorDataModel, DataModel>( shouldRebuild: (pre, next) => pre.shouldListRebuild..., selector: (context, dataModel) => dataModel, builder: (BuildContext context, DataModel dataModel..., DataModel>,这里只借助了Selector的shouldRebuild功能,所以并没有对数据做筛选,完整的代码大家请参考Dojo中的实现。
; [heightArr addObject:height]; } // 设置头视图的内容 - (void)setDataModel:(PostDaraModel *)dataModel...{ _dataModel = dataModel; [_iconView sd_setImageWithURL:[NSURL URLWithString:_dataModel.face]...placeholderImage:[UIImage imageNamed:@"touxiang_moren"]]; _nameView.text = _dataModel.username; _...timeView.text = _dataModel.addtime; _titleView.text = _dataModel.title; _textView.text = _dataModel.content...) { // NSLog(@"%@", _dataModel.imgs); botLineY = CGRectGetMaxY(_picView.frame) + 14
/** * 保存/更新数据 */ function saveDm(dataModel){ window.localStorage['DataModel'] = dataModel; } /...** * 获取数据 */ function getDm(){ var value = window.localStorage['DataModel']; if(value){...value; } return ''; } /** * 删除数据 */ function clearDm(){ if(window.localStorage['DataModel...']){ delete window.localStorage['DataModel']; } }
= new ht.DataModel(), forceLayout = new ht.layout.Force3dLayout(dataModel); forceLayout.onRelaxed...= function(){ var result = {}; dataModel.each(function(data){ if(data...().cs(); for(var id in moveMap){ var data = dataModel.getDataById(id);...if(data){ data.p3(moveMap[id]); dataModel.sm().as(data);...} } }); socket.on('reload', function (data) { reloadModel(dataModel, data
dataModel = new ht.DataModel(); graphView = new ht.graph.GraphView(dataModel);...graphView.addToDOM(); var root = new ht.Node(); root.setImage('ht-for-web.png'); dataModel.add...ht.Node(); node.setImage('ht-for-web.png'); node.s({ 'body.color': color }); dataModel.add...image.src = 'banner.png';// 'ht-for-web.png'; image.onload = function(){ dataModel...= new ht.DataModel(); graphView = new ht.graph.GraphView(dataModel);
例子地址:http://hightopo.com/guide/guide/core/datamodel/examples/example_datamodel.html ?...= new ht.DataModel(); g3d = new ht.graph3d.Graph3dView(dataModel); g3d.setGridVisible(true);//设置网格可见...dataModel.sm().ld()) return; dataModel.remove(dataModel.sm().ld()); } function clearDataModel(){...ht.SelectionModel管理 DataModel 模型中 Data 对象的选择状态, 每个 DataModel 对象都内置一个 SelectionModel 选择模型,控制这个 SelectionModel...即可控制所有绑定该 DataModel 的组件的对象选择状态, 这意味着共享同一 DataModel 的组件默认就具有选中联动功能。
领取专属 10元无门槛券
手把手带您无忧上云