1

私はember データを使用するためにhttp://emberjs.com/guides/models/connecting-to-an-http-server/に従おうとしていますが、残りの API を作成した後、次のような js エラーが発生します。

ルートの読み込み中にエラーが発生しました:

TypeError: データが未定義です

コード上:

idEmber.assert("渡すハッシュに を含める必要がありますpush", data.id != null);

最初は、作成したモデルに「id」フィールドを含める必要があると考えていましたが、そうすると、モデルに id フィールドを配置しないでくださいというエラーがスローされます。残りの API からの出力は正しいです。

{
"analyticsRun": {
    "id": 1,
    "analyticsPlan": "some plan",
    "commandScript": "some script",
    "analyticsRunParameters": [
        "homeDir",
        "historyDir",
        "Sourcefolder",
        "resultsDir",
        "dataDir"
    ]
},
"analyticsRunParameters": [
    {
        "id": "homeDir",
        "default": "Some default",
        "description": "Where is the analytics folder",
        "name": "homeDir",
        "value": "Q:/Ember",
        "type": "global"
    },
    {
        "id": "historyDir",
        "default": "Rhistory",
        "description": "Where R image will be saved",
        "name": "historyDir",
        "value": "Rhistory",
        "type": "global"
    },
    {
        "id": "Sourcefolder",
        "default": "J:/Analytics_R_Source_Scripts",
        "description": "Where are source codes and functions are saved",
        "name": "Sourcefolder",
        "value": "J:/_R_Source_Scripts",
        "type": "type 1"
    },
    {
        "id": "resultsDir",
        "default": "results",
        "description": "Where are results stored",
        "name": "resultsDir",
        "value": "results",
        "type": "global"
    },
    {
        "id": "dataDir",
        "default": "Export",
        "description": "Where is raw csv stored",
        "name": "dataDir",
        "value": "Export",
        "type": "global"
    }
]
}

私のモデルは次のように定義されています:

AS.AnalyticsRun = DS.Model.extend({
'analyticsPlan' : DS.attr('string'),
'commandScript' : DS.attr('string'),
'parameters'    : DS.hasMany('analyticsRunParameter')
});

AS.AnalyticsRunParameter = DS.Model.extend({
'name'          : DS.attr('string'),
'type'          : DS.attr('string'),
'description'   : DS.attr('string'),
'default'       : DS.attr('string'),
'value'         : DS.attr('string')
});

そして私のルートは:

AS.AnalyticsConfigRoute = Ember.Route.extend({
model: function(param) {
    var store = this.get('store');
    return store.find('AnalyticsRun',param.runId);
}
});    

エラーから、コードが ID ルックアップを実行していて、それを見つけられなかったようです。誰かが以前にこの問題に直面したことがありますか、またはこの問題を解決する方法について何か提案はありますか?

注: isuse は、_find 関数内の ember-data.js ファイルで発生しているようです。

return resolve(promise).then(function(payload) {
Ember.assert("You made a request for a " + type.typeKey + " with id " + id + ", but the      adapter's response did not have any data", payload);
//payload has data here
payload = serializer.extract(store, type, payload, id, 'find');
//payload is undefined here!!
return store.push(type, payload);
}

ありがとう、ディー

4

1 に答える 1

1

さて、私は JSBIn を設定しています。それまでは問題を探し続けます (私は Ember Model に精通しています)。

検索でanalyticsRunを小文字に設定しようとしましたか?

 model: function(param) {
   var store = this.get('store');
   return store.find('analyticsRun',param.runId);
 }
于 2013-09-10T00:02:53.503 に答える