extjs - 使用 ExtJs5 定义命名空间

标签 extjs extjs5

我正在使用 ExtJs 5 和 SenchaCmd。

在一个包中,我在几个文件中定义了几个类,如下所示:

// Bar1.js
Ext.define('Foo.Bar1', {
   ...
});

// Bar2.js
Ext.define('Foo.Bar2', {
   ...
});

现在我想用一些像这样的通用工具来“增强”Foo 命名空间:

Ext.ns('Foo');
Foo.tool1 = function() { ... }
Foo.tool2 = function() { .... }
Foo.generalProp1 = 42;
(...)

什么是更好的地方和实践来声明这个以便 Sencha 编译器也嵌入这个文件?

是否有可能(在某种程度上)像我们需要一个类一样“需要”一个命名空间?

最佳答案

您可以使用新分机中的statics:

Ext.define('Foo', {
    // declare static members
    statics: {
        method: function(){ return "static method"; }
    }
});

// Define class under Foo namespace
Ext.define('Foo.OtherClass', {
    method: function(){ return "instance method"; }
});

// Create instance of Foo.OtherClass
var o = Ext.create('Foo.OtherClass');

// Use static member
console.log(Foo.method());

// Use instance member
console.log(o.method());

然后您可以将 Foo 命名空间视为类,并将其放置为任何其他类。 那么显然您也可以要求该 namespace ,因为它也是类。

关于extjs - 使用 ExtJs5 定义命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27106193/

相关文章:

javascript - 根据用户选择向 CQ5 对话框中的多字段动态添加验证

javascript - Ext JS - 自动添加监听器

javascript - 如何使用 eclipse 编辑 Extjs5 响应式应用程序示例项目

javascript - 从 ExtJS 5.1 中的方法访问 Singleton 值

javascript - EXTJS 5 : How to sort grid column in EXT JS 5

javascript - ExtJS itemmouseenter(鼠标悬停)网格行并将单元格文本更改为图像

ExtJS错误: No Such Entity

mysql - 如何使用 ExtJS 4 在不使用复选框的情况下选择网格面板中的所有行?

javascript - 重新启动 Sencha Touch 应用程序

javascript - 更改 ExtJS Grid/DatePicker 中使用的短/长月份名称