Ember.js 未捕获类型错误:无法读取属性';登录';未定义的
我正试图用Firebase和Ember建立OAuth。出于某种原因,它正在返回错误 未捕获的TypeError:无法读取未定义的属性“login” 我在想用户可能没有定义,但我已经在模型中定义了它:Ember.js 未捕获类型错误:无法读取属性';登录';未定义的,ember.js,firebase,emberfire,Ember.js,Firebase,Emberfire,我正试图用Firebase和Ember建立OAuth。出于某种原因,它正在返回错误 未捕获的TypeError:无法读取未定义的属性“login” 我在想用户可能没有定义,但我已经在模型中定义了它: App.User = DS.Model.extend({ username: DS.attr('string'), }); 然后我想可能是“会话”没有定义——我用调试器查找&它说这是一个未知的mixin var session = Ember.Object.extend({
App.User = DS.Model.extend({
username: DS.attr('string'),
});
然后我想可能是“会话”没有定义——我用调试器查找&它说这是一个未知的mixin
var session = Ember.Object.extend({
ref: new Firebase("https://glowing-fire.firebaseio.com/"),
addFirebaseCallback: function() {
var session = this;
this.get("ref").onAuth(function(authData) {
if (authData) {
session.set("isAuthenticated", true);
} else {
session.set("isAuthenticated", false);
}
});
}.on("init"),
login: function() {
return new Promise(function(resolve, reject) {
this.get("ref").authWithOAuthPopup("facebook", function(error, user) {
if (user) {
resolve(user);
} else {
reject(error);
}
});
});
},
currentUser: function() {
return this.get("ref").getAuth();
}.property("isAuthenticated")
});
App.Session = Ember.Object.extend({
initialize: function(container, app) {
app.register("session:main", session);
app.inject("controller", "session", "session:main");
app.inject("route", "session", "session:main");
}
});
我真的很感激你的帮助 问题可能是您正试图访问注入的属性,但从未调用执行注入的代码。第页介绍了注入属性的推荐方法 更具体地说,下面的示例(来自Ember.js网站)应该会有所帮助 使用应用程序初始值设定项:
App = Ember.Application.extend();
App.Logger = Ember.Object.extend({
log: function(m) {
console.log(m);
}
});
App.IndexRoute = Ember.Route.extend({
activate: function(){
// The logger property is injected into all routes
this.logger.log('Entered the index route!');
}
});
Ember.Application.initializer({
name: 'logger',
initialize: function(container, application) {
application.register('logger:main', App.Logger);
application.inject('route', 'logger', 'logger:main');
}
});
App.create();
或直接在应用程序上:
App = Ember.Application.create();
App.register('logger:main', {
log: function(m) {
console.log(m);
}
}, { instantiate: false });
App.inject('route', 'logger', 'logger:main');
请在回答中包含链接页面中的相关信息。链接会随着时间的推移而消失。谢谢,我会试试这个!
App = Ember.Application.create();
App.register('logger:main', {
log: function(m) {
console.log(m);
}
}, { instantiate: false });
App.inject('route', 'logger', 'logger:main');