일부 데이터 포스트 로그인을 상점에 저장하려고합니다. 아래는 내가 무엇입니까"this"는 토리 어댑터 in ember에서 정의되지 않음
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
};
});
}
});
오류 내 도리 어댑터의 코드 "형식 오류가 : 속성을 읽을 수 없습니다 정의의 '설정'". 나는 상점 서비스도 주입 중입니다. 여기 정확히 무슨 잘못 될지 말해 줄 수 있겠 니?
당신이'ember-cli'에 있기 때문에 당신이 화살표 함수를 사용하도록 추천합니다, 이것은'this' 컨텍스트를 덮어 쓰지 않을 것입니다. JS에서 'this'가 어떻게 작동하는지, 그리고 왜 화살표 기능이 있는지에 대해 스스로에게 알리는 것이 좋습니다. 또한 수동으로 첫 번째 약속을 만들 필요없이'Ember. $. ajax'의 결과를 반환하고'Ember.RSVP.resolve()'를 사용하면됩니다. – Lux