Dojo的ItemFileReadStore

    Dojo.data是一种类似于JDBC的API规范,dojo.data驱动实现了这些规范,并且负责响应那些来自于数据小部件的请求。一般来讲,每个驱动程序负责一种不同的数据提供者格式,例如JSON或者XML。

    先大致介绍下数据驱动中的ItemFileReadStore

    这个stroe可以使用HTTP读取json格式的内容,或者从内存中读取js对象,并把所有items都存储在内存中。

    其中identifier是用来一标识一个item的。有时会出现label属性,它是用来标识我们需要看到的那个item的属性值的。

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
		<title>mixin</title>
		<meta name="author" content="zhou" />
		<script src= "dojo16/dojo/dojo.js" data-dojo-config="isDebug: true, async: true,parseOnload:true"></script>
		<script src = "mixin.js"></script>
	</head>
	<body>
		<button dojoType="dijit.form.Button" onclick="getData();">
			获取数据
		</button>
		<br/>
		<br/>
		<div id="dataOutput">
		</div>
	</body>
</html>
dojo.require("dojo.data.ItemFileReadStore");

var countryStore = new dojo.data.ItemFileReadStore({
    url : "abc.json"
});


//onComplete的事件处理程序,将取出来的数据(items)放到dojo.byId("dataOutput")中去
var gotContinents = function(items, request) {
    var buffer = ["<b>获取的数据:</b>"];
    for(var i = 0; i < items.length; i++) {
        var item = items[i];
        buffer.push(countryStore.getLabel(item));
    }
    //这里简单地将取出来的items的label连接在一起
    dojo.byId("dataOutput").innerHTML = buffer.join("<br/>");
}

function getData(query) {
    countryStore.fetch({
        query : {name : "*"},
        onComplete : gotContinents
    });
};

 

{
  "identifier": "name",
  "label":"name",
  "items": [
    { "name": "Bob", "spouse": {"_reference":"Sally"},  "children": [ { "_reference":"Nancy"}]},
    { "name": "Sally", "spouse": {"_reference":"Bob"},  "children": [ { "_reference":"Nancy"}]},
    { "name": "Nancy"},
  ]
}

 

你可能感兴趣的:(store)