1

私は道場に取り組んでいて、初心者です。さて、コンボボックスにデータを入力するために使用できるajax(dojo.xhrGet)を使用してjsonファイルから取得したデータを使用してCreate adojoItemFileReadStoreを作成したいと思います。私はそれに取り組んでみましたが、成功しませんでした!誰かがjsonファイルを呼び出して、データを使用してコンボボックスにデータを入力する方法を教えてください!

var _getPlacetypes = function(){
        dojo.xhrGet({
            url: "place_types.json",
            handleAs: "json",
            timeout: 5000,
            load: function(response, args) {
                console.log(response);

            },
            error: function(error_msg,details) {
                PropertyMap.handleError(error_msg, details);
            }
        });
    }

    var myStore = new dojo.data.ItemFileReadStore({
        jsId:data,
        url: "place_types.json",
        });

私はこのようなものを使用しています!それは正しい方法ですか?

ありがとう

よろしく!

4

2 に答える 2

2

最初にデータの構造を定義します。

var myData = { identifier: 'id', label: 'My Label', items: [] };

identifier各行を一意に識別する必要があります。

ajax からの応答を使用して入力する必要があるため、ItemFileWriteStore (ItemFileReadStore ではない) を使用する必要があります。

var myStore = new dojo.data.ItemFileWriteStore({data: myData});

それが を含むオブジェクトを持つresponsejson であると仮定すると、内部でこれを行います-someListidload:

load: function(response, args) {
    dojo.forEach(response.someList, 
        function(oneItem, i) {
        myStore.newItem({oneItem.id : oneItem.id});
    });

    myStore.save();
}

このようにして、json 応答からデータ ストアを設定できます。

ComboBox の作成中に、ストアを として指定する必要がありますmyStore

var comboBox = new ComboBox({
        id: "stateSelect",
        store: myStore,
    }, "stateSelect");
于 2012-05-08T06:48:56.253 に答える
0

コードを少し単純化するためにJsonRestStoreを使用してみませんか?

xhrGet を直接使用する理由があるかもしれませんが、そうでない場合は、JsonRestStore が仕事の大きな資産になると思います

于 2012-05-09T05:36:22.267 に答える