如何在没有循环引用的控制器之间共享对象/方法?

时间:2014-07-23 17:09:47

标签: javascript extjs4

非常直截了当的问题。目前,当我需要访问对象时我会做什么?大多数应用程序中的方法,我在app.js

中执行此操作
Ext.define('Utils', {
    statics: {
        myMethod: function() {
            return 'myResult'; 
        }
    }
});

这很有效,但是当我构建应用程序时,我收到一个关于循环引用的警告(app.js当然需要所有其他控制器类,但是然后所述类引用回app.js)。

我想过使用包含所有对象/方法的.js文件的包,但有时候,在这些方法中,我需要访问Ext命名空间才能赢得工作

有没有更好的方法呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

您不应在Utils内定义班级app.js。每个Ext.define语句都应该在其自己的文件中。此类名称也应以您的应用名称为前缀。

Ext.define('MyApp.Utils', {
    statics: {
        myMethod: function() {
            return 'myResult'; 
        }
    }
});
因此,应在文件app/Utils.js中找到

。在将源代码编译为已编译的app.js时,Sencha Cmd将负责最终文件中的正确排序。 requiresuses指令为您提供了足够的灵活性来定义类之间的任何依赖关系。

阅读有关MVC的所有文档以获得清晰的理解。