Javascript ExtJS 4.2.1-参考和控制器问题
我的标签定义如下:Javascript ExtJS 4.2.1-参考和控制器问题,javascript,html,css,extjs,controller,Javascript,Html,Css,Extjs,Controller,我的标签定义如下: Ext.define('CapHour.view.CapHourLabel', { extend: 'Ext.form.Label', alias: 'widget.caphourlabel', //itemId: 'capHourLabel', itemId: 'label', style: 'display:inline-block;text-align:center' }) 我的控制器定义如下: Ext.define('C
Ext.define('CapHour.view.CapHourLabel', {
extend: 'Ext.form.Label',
alias: 'widget.caphourlabel',
//itemId: 'capHourLabel',
itemId: 'label',
style: 'display:inline-block;text-align:center'
})
我的控制器定义如下:
Ext.define('CapHour.controller.CapHourController', {
extend: 'Ext.app.Controller',
stores: ['CapHour'],
refs: [
{
ref: 'label',
selector: 'label'
}
],
init: function() {
var store = this.getCapHourStore();
store.on('load', function(records, operation, success) {
var label = Ext.ComponentQuery.query('#label')[0],
//var label = this.getCapHourLabel(),
hour = records.getAt(0).get('hour');
label.setText('CAP HOUR<br/>'+hour, false);
})
}
})
Ext.define('CapHour.controller.CapHourController'{
扩展:“Ext.app.Controller”,
门店:['CapHour'],
参考文献:[
{
参考:“标签”,
选择器:“标签”
}
],
init:function(){
var store=this.getCapHourStore();
store.on('load',功能(记录、操作、成功){
var label=Ext.ComponentQuery.query('#label')[0],
//var label=this.getCapHourLabel(),
hour=records.getAt(0.get('hour');
label.setText('CAP HOUR
'+HOUR,false);
})
}
})
我可以使用
Ext.ComponentQuery.query()
很好,但是当我尝试使用this.getLabel()
时,API调用返回未定义的
。有什么我忘了的吗?我尝试将ref中的选择器设置为“label”和“#label”,但始终得到相同的结果。您需要将存储回调的范围设置为控制器:
store.load({
scope: this,
callback: function(records) {
console.log(this.getLabel());
}
});
作为补充说明,您可能需要一个更好的选择器。您当前使用的选择器按xtype全局搜索,这意味着“抓取您看到的第一个带有xtype标签的对象”。wow thx它工作了。是的,关于选择器,我最终将itemId设置为capHourLabel。在我的参考文献中,我将选择器设置为“#capHourLabel”,它成功了。:)快速提问…为什么这个.getLabel()在controllers init函数的作用域中返回undefined?因为它还没有被创建。好的,谢谢。我在文档中读到,在启动执行和创建视口之前调用init。有道理。