dojo 1.10 JsonRest idAttribute - 服务器在PUT中传递了一个浮点数

时间:2014-07-31 15:36:52

标签: dojo jsonreststore

刚刚开始使用dojo / JsonRest,但是在将更新发送回我的服务器时遇到了一些问题。我有2个问题,我坚持不懈;

下面的代码生成一个网格,其中一列设置为可编辑。 我的json数据中的主键是“jobName”属性(因此JsonRest存储中的idAttribute)。

第一个问题是关于PUT中的URI; - 当我调用dataStore.save()时,服务器得到一个PUT,但URI是/myrestservice/Jobs/0.9877865987(它每次都会改变,但总是浮动) - 我没看到dojo从哪里得到浮点数?它不是该行的idAttribute值。如何让PUT尊重JsonRest存储中的idAttribute? - 我尝试将MemoryStore中的idProperty设置为“jobName”,但是将PUT更改为POST并删除了float,但我仍然没有在URI中获得jobName,这是我的REST服务器所需要的。

关于PUT内容的第二个问题; - PUT包含整行。我真的很喜欢idAttribute和改变的数据 - 这可能吗?

我已经浏览了示例和文档,但是处理JsonRest的PUT / POST部分的例子并不多。

由于

    var userMemoryStore = new dojo.store.Memory( );
    var userJsonRestStore = new dojo.store.JsonRest({target:"/myrestservice/Jobs/", idAttribute:"jobName"});
    var jsonStore = new dojo.store.Cache(userJsonRestStore, userMemoryStore);
    var dataStore = new dojo.data.ObjectStore( {objectStore: jsonStore } );

    /*create a new grid*/
    var grid = new dojox.grid.DataGrid({
        id: 'grid'
        ,store: dataStore
        ,structure: layout
        ,rowSelector: '20px'}
        ,"gridDiv");

    grid.startup();
    dojo.query("#save").onclick(function() {
                    dataStore.save();
                });

1 个答案:

答案 0 :(得分:1)

我认为您需要idProperty,而不是idAttribute。它也可能有助于在用于缓存的内存存储中设置idProperty;这可能是产生随机浮点数的原因。

至于第二个问题,那可能需要定制;我不相信OOTB商店(或网格)通常会发送部分商品。