我在代码中添加了一个监听器,如:约ExtJS的afterLayout
listen: {
afterLayout: function(){
doSomething...
}
}
的功能是呈现HTML标签。但是当页面加载时它不起作用。我需要强制渲染页面,比如改变浏览器的大小才能工作。我想知道为什么。 “afterLayout”应该在页面加载正确后自动工作?或者我错过了什么?
我在代码中添加了一个监听器,如:约ExtJS的afterLayout
listen: {
afterLayout: function(){
doSomething...
}
}
的功能是呈现HTML标签。但是当页面加载时它不起作用。我需要强制渲染页面,比如改变浏览器的大小才能工作。我想知道为什么。 “afterLayout”应该在页面加载正确后自动工作?或者我错过了什么?
我觉得你的事件搜索AfterRender阶段。 仅当窗口大小发生变化而不是负载时才会触发Afterlayout。 afterrender事件匹配后加载感兴趣的组件的布局。 所以你应该试试这个:
listen: {
afterrender: function(){
doSomething...
}
}
如果必须调用同一个函数在所有情况下调用它AfterRender阶段和afterlayout
我认为你的问题可以解决viewport。 将您的应用程序包装在此组件中。视口会听窗口大小的变化,并自动重新大小它的子元素(应用程序)
您使用的是错误的配置。取而代之的listen: {
使用listeners: {
下面是一个例子:https://fiddle.sencha.com/#fiddle/16gu
Ext.application({
name : 'afterRender Test',
launch : function() {
Ext.create('Ext.container.Container', {
renderTo: Ext.getBody(),
listeners: {
afterRender: function() {
this.update('<div style="width:300px; background-color:red; padding:10px;">Added via afterRender listener</div>');
}
}
});
}
});
感谢您的提醒。其实它是我的代码中的听众。我在这里犯了一个错误。 – nasuf
版本的ExtJS的? –
@ Mr.George 4.1.x我忘了确切的版本,因为代码是公司的。 – nasuf