【发布时间】:2012-09-19 09:46:38
【问题描述】:
我正在 Parse.com 中编写一个应用程序,并且我定义了一个“AppState”对象,它存储了我通过应用程序传递的各种常量和值(有点像 PHP 会话)。
在某一时刻,我试图从 AppState 对象中读取一个值,虽然它似乎已设置,但我没有取回该值。
AppState 定义为:
var AppState = Parse.Object.extend("AppState", {
defaults: {
folderShown: '',
folderSpecial: 'all',
showCaption: false
}
});
然后我必须启动应用程序:
var state = new AppState;
new AppRouter;
new AppView;
在 AppRouter 中,我正在设置“路由”的值:
var AppRouter = Parse.Router.extend({
routes: {
"viewPage/:object_id": "viewPage",
},
initialize: function(options) {
},
viewPage: function(object_id) {
state.set("currentPage", object_id);
state.set("route", "view");
}
});
在应用程序视图中,我有:
var AppView = Parse.View.extend({
initialize: function() {
this.render();
},
render: function() {
console.log(state);
console.log(state.get('route'));
}
});
第一个控制台日志显示状态,属性'route'设置为'view':
attributes: Object
folderShown: ""
folderSpecial: "all"
route: "view"
showCaption: false
第二个控制台日志显示“未定义”。
如果我获得默认属性之一,例如“folderSpecial”,它会读取正确的值。
我做错了什么?
【问题讨论】:
-
谢谢,但我不认为这只是一个控制台问题,因为随后的行为就好像该值确实是未定义的。
-
你说在AppRouter中,我正在设置“route”的值。 -- 我们可以看看这段代码吗?
-
你在哪里调用 History.start?在新的 AppView 之后?
-
是的,在新的 AppView 之后我有 Parse.history.start();
标签: javascript jquery backbone.js parse-platform