javascript - Sencha Touch 全局变量

标签 javascript sencha-touch

我正在开发一个 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)整个应用程序。

我需要知道两件事。

  1. 如何声明全局应用程序级变量。
  2. 如何在 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/

相关文章:

javascript - 如何使用jquery将图像显示为html文件? (一些 php 和 xml)

javascript - JS - 强制函数在其他函数之后运行

javascript - 合并两个对象而不添加新属性

javascript - 无法从导入模块的打字文件中解析 typescript 类,但可以使用绝对路径

ios - 如何在IOS中安装phonegap-plugin-push

android - sencha touch native 应用程序是否有可能仍在后台运行?

javascript - 使用 Javascript 密码保护 PDF

sencha-touch - Sencha Touch 1 的嵌套列表无限循环

javascript - Sencha Touch - AJAX 不工作

html - sencha 触摸选项卡面板选项卡的图标