我知道这个问题已经发布在StackOverflow中了,但我要么不理解,要么sencha有所改变。
我的应用程序加载一个表单面板进行登录,然后我想保存刚刚登录的用户信息。这样,我可以随时更改我的视图,并且仍然知道登录用户的名称。
这是我的主要代码:
//<debug>
Ext.Loader.setPath({
'Ext': 'sdk/src'
});
//</debug>
Ext.application({
name: 'APP',
loadedUser: 'the test',
requires: ['Ext.MessageBox'],
views: ['Main', 'Home', 'Login'],
models: ['User'],
stores: ['Users'],
controllers: ['Main'],
icon: {
57: 'resources/icons/Icon.png',
72: 'resources/icons/Icon~ipad.png',
114: 'resources/icons/Icon@2x.png',
144: 'resources/icons/Icon~ipad@2x.png'
},
phoneStartupScreen: 'resources/loading/Homescreen.jpg',
tabletStartupScreen: 'resources/loading/Homescreen~ipad.jpg',
setLoadedUser: function(arg) {
this.loadedUser = arg;
},
launch: function() {
// Destroy the #appLoadingIndicator element
Ext.fly('appLoadingIndicator').destroy();
// Initialize the main view
Ext.Viewport.add(Ext.create('APP.view.Main'));
},
onUpdated: function() {
Ext.Msg.confirm("Application Update", "This application has just successfully been updated to the latest version. Reload now?", function() {
window.location.reload();
});
}
});
"loadedUser"是我想要的全局变量,方法setLoadedUser(arg)用于更改该值。
我可以访问"loadedUser",没有问题,但我无法更改其值。另一个问题:loadedUser可以是数组/数据结构吗?
您是如何访问该函数的?这对我有用。记住你应该这样访问它:
APP.app.setLoadedUser('test');
是的,它可以是任何值。:)
您还可以使用localStorage来设置/获取您的变量:
设置为:localStorage.setItem('currentUserId', userID)
获取为:localStorage.getItem('currentUserId')
您可以在脚本中的任何位置使用它。
是的,当函数在app.js文件中时,它就起作用了。如果函数在控制器文件中,则它不起作用。
因此,如果您有一个名为IronMan的项目应用程序,那么从视图代码到app.js
文件中全局函数flyAway()
的调用将如下所示:
IronMan.app.flyAway();