ExtJS 4.0.7을 사용 중이며 Ext에 익숙하지 않고 새로운 MVC 아키텍처를 사용 중입니다. 나는 변화에 따라 더 많은 UI 요소를 드러내 기 위해 RadioGroup을 사용하고 싶습니다. 문제는 변경 이벤트가 RadioGroup에 대해 두 번 발생한다는 것입니다. 두 라디오가 값을 변경하는 이벤트를 발생시키기 때문에 이것이라고 가정합니다.ExtJS 4 RadioGroup 이벤트 변경 두 번 발생
한 번만 발사되는 같은 이름의 라디오 그룹 또는 라디오로 수신 대기하는 방법이 있습니까? jQuery와 Flex에 대한 경험으로, RadioGroup이 한 번만 발동 할 것으로 기대합니다. 여기 내 컨트롤러에서 관련 코드의
items: [{
xtype: 'radiogroup',
id: 'WheatChoice',
padding: '',
layout: {
padding: '-3 0 4 0',
type: 'hbox'
},
fieldLabel: 'Choose Model',
labelPad: 5,
labelWidth: 80,
allowBlank: false,
columns: 1,
flex: 1,
anchor: '60%',
items: [
{ xtype: 'radiofield', id: 'SpringWheat', padding: '2 10 0 0', fieldLabel: '',
boxLabel: 'Spring', name: 'wheat-selection', inputValue: '0', flex: 1 },
{ xtype: 'radiofield', id: 'WinterWheat', padding: '2 0 0 0', fieldLabel: '',
boxLabel: 'Winter', name: 'wheat-selection', inputValue: '1', checked: true, flex: 1 }
]
}]
: 초기 값이 설정되고 있기 때문에 그것은 해고 될 수
init: function() {
this.control({
'#WheatChoice': {
change: this.onWheatChange
}
});
},
onWheatChange: function(field, newVal, oldVal) {
//this fires twice
console.log('wheat change');
}
확정 ([바이올린 (http://jsfiddle.net/molecule/4sTQQ/)). 버그 같아. –
이것은 해결 방법이 아닙니다. 나는 버그의 쇼케이스만을 만들었습니다. –
죄송합니다. 게시 한 자료에 대해 이야기하고있었습니다. 이 문제를 해결하려면 다음과 같이하십시오. 선택기를 '#WheatChoice radio'로 변경하고 이벤트 리스너의 로직을 사용하여 true가 아닌 새 값을 무시하십시오. –