你能告诉我为什么这会让我
无法调用未定义的子字符串。 无法调用未定义的方法 getModel 。
Ext.require(
['MyApp.controller.Country', 'MyApp.controller.CountryProperties'], // this auto-loads all dependencies
function(){
// ... as soon as this class
// and all its dependencies have loaded...
var controller = Ext.create('MyApp.controller.Country'); // create an instance
var controller2 = Ext.create('MyApp.controller.CountryPropeties'); // create an instance
controller.init(); // launch init() method
controller2.init();
}
);
但是当我在app.js中手动将这些控制器,视图,商店和模型添加到控制器中时:[],视图:[]等它可以工作。
顺便说一下。我有内部控制器 - > stores:[],views:[]所以当我只加载一个控制器时,它应该为控制器加载任何依赖项。
为什么我会收到错误?
谢谢。 :)
答案 0 :(得分:3)
除了@arshabh回答之外,这是完全正确的。
如果您致电(第1版 - 修正错字)
this.application.getController('Country');
this.application.getController('CountryPropeties');
从您的控制器获得的结果与您完全相同,只是更简单一些。请注意,应用程序getter会自动加载缺少的类,并为控制器或存储库初始化/注册它们。
答案 1 :(得分:0)
你的代码很完美,但是你忘记了范围(这个)
请在代码中进行如下更改
Ext.require(
['MyApp.controller.Country', 'MyApp.controller.CountryProperties'], // this auto-loads all dependencies
function(){
// ... as soon as this class
// and all its dependencies have loaded...
var controller = Ext.create('MyApp.controller.Country'); // create an instance
var controller2 = Ext.create('MyApp.controller.CountryPropeties'); // create an instance
controller.init(); // launch init() method
controller2.init();
},this
);
答案 2 :(得分:0)
对我有用的是
this.application.getController('Country').doInit(this);
干杯
埃德加