做过的项目中曾经有这样的需求:货品录入(商品入库),弹框弹出所有的货品(很多),选择其中的一个,则下次弹框弹出所有货品时不再显示选择了的那件货品。当然,录入功能包括,删除已选择的货品,则下次弹框弹出所有货品时再次显示出刚删除的货品
整个示例主要就是将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 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 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 的 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,
例子地址: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 的组件默认就具有选中联动功能。
在服务端我们该如何创建 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 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
; [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
; bool isCheck; int likeCount; ItemModel(this.title, this.isCheck, this.likeCount); } class DataModel return ListView.builder( itemBuilder: (context, index) { return Selector<DataModel, ItemModel>( Expanded( child: Selector<DataModel, DataModel>( shouldRebuild: (pre, next) => pre.shouldListRebuild , selector: (context, dataModel) => dataModel, builder: (BuildContext context, DataModel dataModel , DataModel>,这里只借助了Selector的shouldRebuild功能,所以并没有对数据做筛选,完整的代码大家请参考Dojo中的实现。
/** * 保存/更新数据 */ 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']; } }
例子地址: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 的组件默认就具有选中联动功能。
在服务端我们该如何创建 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,
采用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 将利用 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
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);
= 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
采用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, g2d