私は 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 応答を返します。