Extjs 5.1:视图控制器中的方法未调用
Extjs 5.1: method in a ViewController not invoked
我正在使用 Extjs 5.1,我想在 ViewController 中调用一个方法以下是我的观点:
Ext.define("bdociTabletProto.view.main.Main", {
extend: "Ext.container.Container",
requires: ['bdociTabletProto.view.main.MainController'],
controller: "mainController",
initComponent: function () {
var me = this;
me.layout = "border";
....
me.items = [...];
me.listeners = {
afterlayout: 'onMainAfterLayout',
scope: 'controller'
};
me.callParent(arguments);
}
});
这是我实现onMainAfterLayout
方法的视图控制器:
Ext.define("bdociTabletProto.view.main.MainController", {
extend: 'Ext.app.ViewController',
alias: 'controller.mainController',
onMainAfterLayout: function (container) {
var me = this;
var docNavigator = me.getView().docNavigator;
var workflowActions = me.getView().workflowActions;
docNavigator.setHeight(container.getHeight());
docNavigator.setWidth(container.getWidth() / 4);
workflowActions.setPosition((container.getWidth() - workflowActions.getWidth()) / 2, 0);
}
});
这将引发异常:[E] Ext.util.Event.getFireInfo():无法动态解析 ext-comp-1010 上"afterlayout"侦听器的范围
第一次我写的侦听器没有范围,但是在谷歌搜索问题后,我发现在新版 Extjs (5.1) 中,我应该设置 Scope 属性。
如果不设置 scope 属性,错误如下所示: 未捕获错误:bdociTabletProto.view.main.Main 上没有名为"onMainAfterLayout"的方法
有人可以帮助我吗??谢谢
我找到了解决方案:
-
在视图控制器中添加此内容
control: { '#': { afterlayout: 'onMainAfterLayout' } },
-
从视图中删除侦听器
相关文章:
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- javascript从子方法调用父方法
- 我应该返回一个类似console.log()的方法调用吗
- NodeJS-从同一文件中的另一个方法调用一个方法
- 使用restangular save方法调用put与post时的控件
- 从实例方法调用实例方法
- Node.js-异步方法调用问题
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 向模板实例变量传递调用方法调用的结果时出现异常
- jQuery 方法调用了两次
- 不能从 Backbone.View 的方法调用 Backbone.collection 的方法,其中包含 require
- 组合 onLayout 的方法调用
- lodash/下划线 - 使用绑定与方法调用和方法保持未绑定
- 从公共方法调用模块的私有函数
- 如何对 jqGrid 的 loadComplete 和 onSelectRow 进行基因预和后方法调用
- 完全限定的 JavaScript 方法调用
- 为什么我在 Angular JS 中收到两个方法调用
- 如何在从排序方法调用参数时将其传递给回调
- 使用两种不同的方法调用方法
- 如何在 javascript 中更改方法调用的全局范围