我使用JsonRestStore为一个dijit.form.ComboBox提供数据源,简化后的代码如下:
/*这是一个测试用数据,其中第一条数据包含一个子对象,这个子对象刚好也有个name属性 */ var mockData = [{ "name":"fOO", "id":1, "innerObj":{"name":"张三","id":1} },{ "name":"bar", "id":2}]; var mockService = function(query){ var d = new dojo.Deferred(); d.fullLength = mockData.length; d.callback(mockData); return d; }; var myJsonRestStore = new dojox.data.JsonRestStore({ target: "some/url", service : mockService, });
dijit控件采用声明形式
<input dojoType="dijit.form.ComboBox" store="myJsonRestStore" searchAttr="name"></input>
结果显示出来的列表,是下面的样子:

也就是说第一条数据中的foo没有被显示出来,而foo的子对象“张三”把他给顶替了? 实在搞不清楚是为什么,不知道有没有人遇见类似的问题呢? 求帮助。