アプリでこのエラーが発生し続けますが、何が原因なのかわかりません。
データ ストアをコミットするたびに発生します。
loadedData
rootState.loaded.updated.inFlight 状態でイベントを処理しようとしました。未定義で呼び出されます
誰?
これを引き起こすコードは次のとおりです。
var ts_setting;
ts_setting = Cluey.Setting.find(Cluey.SettingsKeyIDs.API_TIMESTAMP);
if (ts_setting.get('value') != null) {
console.log("Found Timestamp");
} else {
console.log("Creating Initial Timestamp...");
ts_setting.set("id", Cluey.SettingsKeyIDs.API_TIMESTAMP);
ts_setting.set("value", 0);
Cluey.store.commit();
}
編集
エラーの原因となっている次のコード (coffeescript で記述) に要約しました。問題は、コードを初めて実行したときに、オブジェクトが最初にデータ ストアに存在しない場合でも、正常に実行されるということです。指定された ID を持つレコードが既に含まれているデータ ストアでコードを実行すると、エラーが発生します。これは、何が起こっているのかを解読するのに役立ちます。
ts_setting = Cluey.Setting.find(Cluey.SettingsKeyIDs.API_TIMESTAMP)
ts_setting.get('value')
ts_setting.set("id", Cluey.SettingsKeyIDs.API_TIMESTAMP)
ts_setting.set("value", 0)
Cluey.store.commit()
編集 2
レコードの作成で同様の問題が発生しています:
ts_setting = Cluey.Setting.createRecord
id: Cluey.SettingsKeyIDs.API_TIMESTAMP,
value: 0
Cluey.store.commit()
上記のコードでは、次のエラーが表示されます。
Uncaught Error: Attempted to handle event `loadedData` on <Cluey.Setting:ember327:1> while in state rootState.loaded.created.inFlight. Called with undefined
編集 3
@timestamp = ts_setting.get('value')
そのため、まだ保存されていないオブジェクトからデータを取得しようとしていたため、問題を引き起こしていると思われるストアをコミットした直後に呼び出していたことがわかりました。