使用XML创建dojo.store.memory
Create dojo.store.memory using XML?
我的数据最初存储在这样的xml文件结构中(具有一堆实体,每个实体中的行和每个行中的单元格)
<entity i=1>
<row i =1>
<cell i=1>
<cell i=2>
</row>
<row i=2>
<cell i=1>
<cell i=2>
</row>
</entity>
我从dojo教程中读到的例子是:
require([
'dojo/store/Memory',
'gridx/Grid',
'gridx/core/model/cache/Sync'
], function(Store, Grid, Cache){
var store = new Store({
data: [
{id: 1, title: 'Hey There', artist: 'Bette Midler'},
{id: 2, title: 'Love or Confusion', artist: 'Jimi Hendrix'},
{id: 3, title: 'Sugar Street', artist: 'Andy Narell'}
]
});
......
});
我应该如何使用XML样式表创建dojo存储?我应该在我的XML样式表中使用嵌入式javascript吗?
那么,您可以使用dojo/query
模块遍历XML文档。首先唯一要做的就是解析XML(如果还没有的话),例如:
require([ "dojo/query", "dojox/xml/parser", "dojo/dom-attr" ], function(query, xml, domAttr) {
var content = xml.parse("<entity><row i='"1'"><cell i='"1'">Cell 1</cell><cell i='"2'">Cell 2</cell></row><row i='"2'"><cell i='"1'">Cell 3</cell><cell i='"2'">Cell 4</cell></row></entity>");
var out = query("row", content).map(function(node) {
var data = {};
query("cell", node).forEach(function(cell) {
data[domAttr.get(cell, "i")] = cell.textContent;
});
return data;
});
console.log(out);
});
这将产生一个包含两个对象的数组,其中i
属性的值是属性名,<cell>
元素的文本内容是该值。
[{
"1": "Cell 1",
"2": "Cell 2"
}, {
"1": "Cell 3",
"2": "Cell 4"
}]
可以在store中使用。
完整的示例可以在JSFiddle上找到:http://jsfiddle.net/bUjN7/
相关文章:
- TypeError:_this.store.getState在使用来自Redux的连接时不是函数
- Query JS Ext.data.Store
- 回流:让多个组件访问同一个Store
- JavaScript 将“memory”返回为 0,即使我增加或减少它的值
- 相当于 Jquery/Backbone.js 中的 Dgrid/Store (Dojo 工具包)
- 如何将数据从Ext.Store保存到数组
- dojo-dgrid带有store from url(json数据)重载/刷新按钮
- 如何从 store.sync();获取返回消息
- 如何从xhrpost函数中检索响应数据并将该对象存储在dojo/store中
- Sencha Touch Store配置属性仅在“__proto__”;
- 如何使用Dojo Store进行客户端数据缓存
- ES6 class store
- 何时创建新的Flux Store
- AngularJS ng repeat没有't在LocalStorage更改时更新(使用store.js)
- Ember数据:在DS.Store.createRecord上刷新模型
- 使用Javascript、Jquery或Ajax动态插入Yahoo Merchant Store目录标签
- FS.Store 不可靠的GM图像转换
- Sencha ExtJS store.nextPage() 然后 store.first() 给出前一页的第一条记录
- (dojo)Observable无法观察Memory Store中的更改
- 使用XML创建dojo.store.memory