Ext.define('school.view.interaction.notice.SchoolNoticeModel', { extend: 'school.view.core.form.FormPanelModel', alias: 'viewmodel.interaction-notice-schoolnotice', formulas: { notify_status_change: { bind: '{notify_status}', get: function(v) { let view = this.getView(); view.setEditable(v != 1); } }, classId_change: { bind: '{classId}', get: function(v) { if(!v) { return; } let form = this.getView(); let gradeIdField = form.getForm().findField('gradeId'); let gradeNameCombo = form.getForm().findField('gradeName'); let classNameCombo = form.getForm().findField('classzName'); let record = classNameCombo.store.data.items.find(item => item.get('clazz_id') == v); gradeIdField.setValue(record.get('grade_id')); gradeNameCombo.setValue(record.get('clazz_grade')); classNameCombo.setValue(record.get('clazz_name')); } }, gradeId_change: { bind: '{gradeId}', get: function(v) { if(!v) { return; } let form = this.getView(); let gradeNameCombo = form.getForm().findField('gradeName'); let record = gradeNameCombo.store.data.items.find(item => item.get('grade_id') == v); gradeNameCombo.setValue(record.get('grade_name')); } } } });