0

私は ember-cli と ember-data 1.13.7 と JSONAPIAdapter を使用しています。http-mock を使用して、ローカル テスト中にデータをモックします。RESTAdapter を使用したときはうまくいきましたが、JSONAPIAdapter に切り替えるときに問題が発生しました。

問題は、レコード データがストアに読み込まれず、未定義のプロパティの読み取りエラーが発生することです。

アダプターは次のようになります。

import DS from 'ember-data';
export default DS.JSONAPIAdapter.extend({
    namespace: 'api',
});

ajax 呼び出しは次のとおりです。

http://localhost:4200/api/users/1

http-mock は次のようになります。

usersRouter.get('/:id', function(req, res) {
 res.send({
  'users': {
    id: req.params.id,
    firstname: "John",
    lastname: "Doe",
    email: "johndoe@example.com",
    mobile: "12345678",
    nextAppointment: 1
  }
 });
});

応答は次のようになります。

{"users":{"id":"1","firstname":"John","lastname":"Doe","email":"johndoe@example.com","mobile":"12345678","nextAppointment":1}}

応答データは問題ないように見えますが、問題は、応答と共にヘッダー ステータス コード 304 が表示され、データがストアにロードされていないことです。id=1 のオブジェクトが作成されましたが、ember インスペクターで店舗データを見ると、オブジェクトのすべてのプロパティが「未定義」になっています。

アップデート:

私が得るエラーは次のとおりです。

Error while processing route: 
    home.index Cannot read property '_internalModel' of undefined 
    TypeError: Cannot read property '_internalModel' of undefined

更新 2: 304 は重要ではないことが判明しました。httpcode が 200 の場合でも、モデルはストアに正しくロードされません。また、この呼び出しが正常に機能することにも資金を提供しています。

http://localhost:4200/api/users

この呼び出しが失敗している間:

http://localhost:4200/api/users/1

これらはまったく同じ JSON 応答を返します。

4

1 に答える 1