我在带有Rails后端的ember 1.13中实现了一个前端,并遇到了以下问题:
用户通过身份验证后,我似乎无法从后端检索用户的记录。浏览器调试器甚至不显示正在进行的请求。这是代码:
// app/services/session-user.js
import Ember from 'ember';
const { inject: { service }, RSVP } = Ember;
export default Ember.Service.extend({
session: service('session'),
store: service(),
loadCurrentUser() {
currentUser: {
var userId = this.get('user_id');
if (!Ember.isEmpty(userId)) {
return this.get('store').findAll('user', userId);
}
}
}
});
有一个登录控制器可以处理身份验证。但获取数据的代码在应用程序的路径中:
// app/routes/application.js
import Ember from 'ember';
import ApplicationRouteMixin from 'ember-simple-auth/mixins/application-route-mixin';
const { service } = Ember.inject;
export default Ember.Route.extend(ApplicationRouteMixin, {
sessionUser: service('session-user'),
beforeModel() {
if (this.session.isAuthenticated) {
return this._loadCurrentUser();
}
},
sessionAuthenticated() {
this._loadCurrentUser();
},
_loadCurrentUser() {
return this.get('sessionUser').loadCurrentUser();
},
});
为了额外衡量,我正在定义会话商店:
// app/session-stores/application.js
import Adaptive from 'ember-simple-auth/session-stores/adaptive';
export default Adaptive.extend();
如果有文件我应该发布,请告诉我。
任何提示都会受到高度赞赏,因为我对贪婪很新。我花了几个小时研究没有运气,因为在整个版本中似乎发生了很多变化。
答案 0 :(得分:0)
查看您的服务代码。
var userId = this.get('user_id');
if (!Ember.isEmpty(userId)) {
return this.get('store').findAll('user', userId);
}
我没有看到您在设置user_id变量时提供的代码。因此,如果未定义user_id,则if
语句将因!
而无法执行。