伙计们,
我有一个由JSONStore支持的组合框组件.加载到商店的数据为组合框的值返回null.该值为int.JSON解码过程将空值转换为零; 导致组合框在尝试查找pk时无法呈现,在其后备存储中不存在零.
我找到了data.Field对象的useNull:config选项,升级到3.3.0 Final并将组合框的int值设置为useNull:true.遗憾的是,这根本没有任何影响.解码后的值仍然从零变为零.
当JSON字段的数据为空时,有关如何不将字段设置为零的任何想法?
这是一张正在发生的事情的照片.注意数据:value为零,但JSON值为null.
谢谢!
(gah!stoopid声誉<10所以我不能直接发布图片.查看此处: debug pic)
此外,这是我的商店的字段配置:
fields: [
{name:"id", type:"int"},
{name:"occurenceDate", dateFormat: 'Y-m-d\\TH:i:s', type:"date"},
{name:"docketNumber", type:"string"},
{name:"courtLocationId", type:"int", useNull:true},
{name:"assignedOfficerId", type:"int", useNull:true},
{name:"primaryIncidentTypeId", type:"int", useNull:true},
{name:"secondaryIncidentTypeId", type:"int", useNull:true},
{name:"tertiaryIncidentTypeId", type:"int", useNull:true},
{name:"incidentLocation", type:"string"},
{name:"summary", type:"string"},
{name:"personalItemsSeized", type:"string"},
"supplements",
"parties",
"judgeIds"
]
Run Code Online (Sandbox Code Playgroud) 我正在尝试Ext.data.Store在创建新的实例时处理异常Ext.data.Record.当服务器使用以下json响应时:
{"success": false, "message": "some text"}
Run Code Online (Sandbox Code Playgroud)
我得到"请求"类型的异常,即使服务器返回HTTP 200响应!
要获得"远程"错误,我必须使用root属性创建一个对象
({
"success": false,
"message": "some text",
"data": {
"PositionId": "00000000-0000-0000-0000-000000000000",
"Name": "123"
}
})
Run Code Online (Sandbox Code Playgroud)
......但我不想要这个.有没有办法改变这种行为?
此外,当我在商店中插入记录时,它会自动添加到关联的网格中,但如果发生错误,它仍然存在,所以我需要在每个错误上重新加载存储.有没有更好的方法来做到这一点?
此代码块有效:
Ext.define('MyApp.store.MyJsonStore', {
extend: 'Ext.data.Store',
fields: ['fieldName'],
proxy: {
type: 'ajax',
url: 'json.php',
reader: 'json'
}
});
Run Code Online (Sandbox Code Playgroud)
这一次崩溃:
Ext.define('MyApp.store.MyJsonStore', {
extend: 'Ext.data.JsonStore',
fields: ['fieldName'],
proxy: {
type: 'ajax',
url: 'json.php',
reader: 'json'
}
});
Run Code Online (Sandbox Code Playgroud)
这是出现问题的地方:

难道我做错了什么?
在我的一个项目中,我需要使用JSOn服务器响应加载Json存储,如下所示.在JSon响应中,我得到2-3个根元素.但在商店配置中,我只能提供1个根元素.
{
{"level2List":[{id:'id1', name:'sample'},....]},
{"level3List":[{id:'id1', name:'sample'},....]},
{"level4List":[{id:'id1', name:'sample'},....]}
}
Run Code Online (Sandbox Code Playgroud)
我的商店配置如下.
store = new Ext.data.JsonStore({
// store configs
storeId: 'myStore',
proxy: {
type: 'ajax',
url: 'xml/getKpiInputData.json',
reader: {
type: 'json',
root: 'level3List',
idProperty: 'name'
}
},
fields: [
{name: 'name'},
{name: 'id'},
...
],
remoteFilter: false,
remoteSort: true,
pageSize: 10,
autoLoad: {start: 0, limit: 10}
});
Run Code Online (Sandbox Code Playgroud)
如果我给1个根元素(例如level3List),它正在正确加载各个项目.但我需要从多个根元素加载数据的解决方案.请帮我把数据加载到商店.
我有一个EXTJS Web应用程序,它以json格式返回数据.结果显示在ExtJS Grid中,并由pagingToolbar处理.我正在使用slidingPager插件来选择页面.当用户选择带滑块的页面时,我需要的是向页面编号显示该页面的第一个结果的标题.
所以在jason数据中,服务器返回另外的计数和记录数据等.我正在添加一个名为headers的属性,它实际上是每个页面第一个结果的标题数组.
我不知道的是我如何访问和处理这个新属性,所以我可以抓住例如第10页json数据中header属性的第10项.
在此先感谢Andreas
我的JsonStore如此定义:
var data_json = new Ext.data.JsonStore({
url: '/Game/json_index',
autoLoad: true,
id: 'data_json',
idProperty: 'id',
fields: [ {name: 'id', type: 'int'}, 'name', {name:'add_date', type:'date', dateFormat: 'M$'}, 'price', 'kind', 'metacritic'],
listeners: { 'load': function(storename, records, options){
console.dir(this);
}},
writer: new Ext.data.JsonWriter()
})
Run Code Online (Sandbox Code Playgroud)
它收到的JSON的DUMP是这样的:
[
{"id":1,"name":"Guild Wars 2","add_date":"\/Date(1346104800000)\/","price":24.99,"kind":"MMO","metacritic":93},
{"id":2,"name":"Dark Souls: Prepare to Die Edition","add_date":"\/Date(1345759200000)\/","price":45.00,"kind":"actionrpg","metacritic":87},
{"id":3,"name":"Orcs Must Die! 2","add_date":"\/Date(1343599200000)\/","price":15.00,"kind":"action","metacritic":83}
]
Run Code Online (Sandbox Code Playgroud)
JSON被正确解码,商店里满是我的记录,但要注意......可怕的事情发生了!

所有记录都标记为phantom = true,这不能让我正确使用ExtJS 3.4.x store.save()功能
我在google上彻底搜索了这个问题,并且(我认为)它与JsonReader没有将记录id与我传递的'id'字段相关联的事实联系起来.我甚至指定了idProperty:'id'.
帮忙吗?我变得绝望,阅读关于创造记录的极端来源是纯粹的痛苦.
有人可以在MobileFirst平台上解释JSONStore和CloudantSync(CDTStore)之间的主要区别(以及作为奖励PouchDB)吗?
我很难决定哪一个会更好用.
我看到这里的文档指出,如果您需要FIPS 140-2合规性,需要同步或正在构建混合应用程序,JSONStore会更好.但是,看起来你可以用CDTStore完成所有这三个.另外,我在一些教程中看到了PouchDB.我试图理解看起来像做同样事情的不同方法之间的关键差异.任何见解将不胜感激.
我有一个商店的问题,在List中携带数据,事情是商店正在负载但列表仍然在加载,我做错了,谢谢
Ext.regModel('Properties', {
fields: [
{name: 'idcounty', type: 'string'},
{name: 'county', type: 'string'}
]
});
store = new Ext.data.Store({
model : 'Properties',
proxy: {
type: 'ajax',
url: 'php/response_grid.php?module=countys',
reader: {
type: 'json',
root: 'results',
totalCount: 'total'
}
},
autoLoad:true
});
var listPanel = {
dockedItems: [
{
title: 'Results',
xtype: 'toolbar',
ui: 'light',
dock: 'top'
}
],
layout: 'fit',
scroll: 'vertical',
items: [
{
xtype: 'list',
itemTpl : '{county}',
store: store,
singleSelect: true,
onItemDisclosure: function(record, btn, index){
}
}
], …Run Code Online (Sandbox Code Playgroud) 我刚刚将N4升级到Kitkat并测试了一些使用IBM Worklight开发的旧应用程序.令我震惊的是JSON Store停止工作,我提交下面的日志请检查.还有其他人面临同样的问题吗?
11-27:48:03.078:I/jsonstore-core(23424):执行迁移到JSONStore 2.0 11-27 11:48:03.078:E/jsonstore-core(23424):无法创建jsonstore目录11-27 11 :48:03.078:E/jsonstore-core(23424):java.lang.Exception:无法创建jsonstore目录11-27 11:48:03.078:E/jsonstore-core(23424):at com.worklight.androidgap. plugin.storage.ProvisionActionDispatcher.checkVersionMigration(ProvisionActionDispatcher.java:72)11-27 11:48:03.078:E/jsonstore-core(23424):at com.worklight.androidgap.plugin.storage.ProvisionActionDispatcher.dispatch(ProvisionActionDispatcher.java :220)11-27 11:48:03.078:E/jsonstore-core(23424):at com.worklight.androidgap.plugin.storage.BaseActionDispatcher.dispatch(BaseActionDispatcher.java:87)11-27 11:48:03.078 :E/jsonstore-core(23424):at com.worklight.androidgap.plugin.storage.DispatchingPlugin $ ActionDispatcherRunnable.run(DispatchingPlugin.java:113)11-27 11:48:03.078:E/jsonstore-core(23424) :at com.worklight.androidgap.plugin.storage.Dis patchingPlugin $ SerialExecutor $ 1.run(DispatchingPlugin.java:147)11-27 11:48:03.078:E/jsonstore-core(23424):at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)11- 27 11:48:03.078:E/jsonstore-core(23424):at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)11-27 11:48:03.078:E/jsonstore-core( 23424):at java.lang.Thread.run(Thread.java:841)11-27 11:48:03.078:E/jsonstore-core(23424):在规定期间出错11-27 11:48:03.078:E/jsonstore-core(23424):java.lang.Exception:无法创建jsonstore目录11-27 11:48:03.078:E/jsonstore-core(23424):at com.worklight.androidgap.plugin.storage.ProvisionActionDispatcher.checkVersionMigration (ProvisionActionDispatcher.java:72)11-27 11:48:03.078:E/jsonstore-core(23424):at com.worklight.androidgap.plugin.storage.ProvisionActionDispatcher.dispatch(ProvisionActionDispatcher.java:220)11-27 11 :48:03.078:E/jsonstore-core(23424):at com.worklight.androidgap.plugin.storage.BaseA ctionDispatcher.dispatch(BaseActionDispatcher.java:87)11-27 11:48:03.078:E/jsonstore-core(23424):at com.worklight.androidgap.plugin.storage.DispatchingPlugin $ ActionDispatcherRunnable.run(DispatchingPlugin.java:113 )11-27 11:48:03.078:E/jsonstore-core(23424):at com.worklight.androidgap.plugin.storage.DispatchingPlugin $ SerialExecutor $ 1.run(DispatchingPlugin.java:147)11-27 11:48: 03.078:E/jsonstore-core(23424):at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)11-27 11:48:03.078:E/jsonstore-core(23424):at java.util .concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:587)11-27 11:48:03.078:E/jsonstore-core(23424):at java.lang.Thread.run(Thread.java:841)
init通知错误:-----> {"src":"initCollection","err": - 1,"msg":"PERSISTENT_STORE_FAILURE","col":"通知","usr":"test", "doc":{},"res":{}} [wl.jsonstore] …
在MobileFirst Foundation中,将JSONStore添加到Windows 8.1 Universal环境会将以下文件添加到项目中:Msvcr110.dll
Sqllite3.dll
JSONStoreWin8Lib.dll
要创建包并验证它以进行发布,我使用Visual Studio在Windows 8本机中打开.sln文件,单击项目发布(project-> store-create application package)以启动该过程.
验证过程失败并显示错误:'msvcr110.dll不受支持'只有通过MS商店验证才会出现错误.
我该如何解决这个错误?