我正在开发一个 Sencha Touch 应用程序,我对它的学习非常好,因为我喜欢 JavaScript。
这是我的 app.js
var App = new Ext.Application({
name: 'My First App',
//BaseURL: 'http://mydomain.com/testing/first/services/',
launch: function() {
this.views.viewport = new this.views.Viewport();
// this.BaseURL = "http://mydomain.com/testing/first/services/";
}
});
这是我的商店之一。
var newsStore = new Ext.data.Store({
model: 'News',
sorters: [{
property: 'PostedOn',
direction: 'DESC'
}],
proxy: {
type: 'ajax',
url: 'http://mydomain.com/testing/first/services/News.php',
reader: {
type: 'xml',
root: 'News',
record: 'New'
}
},
getGroupString: function(record) {
if (record && record.data.PostedOn) {
return record.get('PostedOn').toDateString();
}
else {
return '';
}
},
autoLoad: true
});
现在的问题是,我是否可以在整个应用程序中创建一个全局变量?它被命名为 BaseURL,我可以在所有数据存储中使用它,当需要更改它时,我只需更改它以反射(reflect)整个应用程序。
我需要知道两件事。
- 如何声明全局应用程序级变量。
- 如何在 View 和存储中访问该变量。
最佳答案
我建议将您的自定义全局变量添加到应用程序命名空间,如下所示:
Ext.application({
name: 'MyApp',
launch: function() { },
apiToken: 'foo'
});
这样您就可以在应用程序启动后访问这些自定义变量:
MyApp.app.apiToken
它也适用于函数:
Ext.application({
name: 'MyApp',
launch: function() { },
apiToken: 'foo',
getApiToken: function() { return this.apiToken; }
});
关于javascript - Sencha Touch 全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7300097/