我正在写使用咖啡烤面包机(一个真棒NPM模块拼接)的CoffeeScript是构建我的app.js文件的应用程序。
我的应用程序类和模板的很多要求有关当前用户的信息,所以我有类用户(延伸Backbone.Model)存储作为我的主要应用程序类的属性(扩展Backbone.Router)的一个实例。
作为初始化程序的一部分,我抓住从服务器的用户(这需要身份验证,角色,帐户交换等服务)。 下面是CoffeeScript的:
@user = new models.User
@user.fetch()
console.log(@user)
console.log(@user.get('email'))
第一个日志记录语句输出正确的Backbone.Model在控制台属性对象,只是因为它应该:
User
_changing: false
_escapedAttributes: Object
_pending: Object
_previousAttributes: Object
_silent: Object
attributes: Object
account: Object
created_on: "1983-12-13 00:00:00"
email: "ben@accomplicecreative.com"
icon: "0"
id: "1"
last_login: "2012-06-07 02:31:38"
name: "Ben Ipsen"
roles: Object
__proto__: Object
changed: Object
cid: "c0"
id: "1"
__proto__: ctor
app.js:228
然而,尽管该模型未定义第二个返回属性明确时登录控制台在那里。
而只是为了让事情更有趣,键入“window.app.user.get(‘电子邮件’)”进入控制台手动返回“ben@accomplicecreative.com”的预期值...?
仅供参考,这里的initialize方法如何编译成我的app.js文件:
Application.prototype.initialize = function() {
var isMobile;
isMobile = navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/);
this.helpers = new views.DOMHelpers().initialize().setup_viewport(isMobile);
this.user = new models.User();
this.user.fetch();
console.log(this.user);
console.log(this.user.get('email'));
return this;
};
我初始化应用程序控制器在我的静态HTML像这样:
jQuery(document).ready(function(){
window.app = new controllers.Application();
});
建议请和谢谢!