ログイン後のデータをストアに保存しようとしています。以下は、私が取得しています私の鳥居・アダプターのコードemerのtorii-adapterで "this"が定義されていません
import Ember from 'ember';
import {createToken} from 'myapp/utils/app-utils';
export default Ember.Object.extend({
store: Ember.inject.service(),
open: function(authentication){
let authorizationCode = authentication.authorizationCode;
let token = createToken();
return new Ember.RSVP.Promise(function(resolve, reject){
console.log(authentication);
Ember.$.ajax({
url: 'http://localhost/getUserInfoWuthAuthCode.php',
data: { 'code': authorizationCode,token:token},
success: Ember.run.bind(null, resolve),
error: Ember.run.bind(null, reject)
});
}).then(function(data){
let user = data.user[0];
this.set('storage.token',token); //this is undefined
return {
user: user
};
});
}
});
エラーは、「例外TypeError:未定義の 『SET』プロパティを読み取ることができません」です。 私は店舗サービスも注入しています。ここで何が間違っているのか教えてください。
あなたが 'ember-cli'にいるので、私はあなたに矢印関数を使うことをお勧めします。これは' this'コンテキストをオーバーライドしません。私は、JSでの「これ」がどのように働いているのか、なぜ矢印機能を持っているのかをあなた自身に知らせることをお勧めします。また、手動で最初の約束事を作成する必要はありません。 'Ember。$。ajax'の結果を返し、' Ember.RSVP.resolve() 'を使用してください。 – Lux