Как проверить, содержит ли панель форму?
У меня есть куча панелей, из которых одна не имеет формы. При навигации между панелями мне нужно проверить, есть ли форма.isDirty(). Очевидно, это работает нормально, пока я не нажимаю на панель без формы. Это макет карты, и я в настоящее время использую:
Ext.getCmp ('содержание панели'). GetForm(). IsDirty ()
Перед выполнением этой строки мне нужно проверить, действительно ли панель имеет форму. Возможно ли это сделать в ExtJS 4?
3 ответа
Нашел обходной путь. Размещение на всякий случай, если кто-то еще может искать то же самое.
Я разделил свое заявление в следующем
var formCmp = Ext.getCmp('content-panel'); а затем называется formCmp.getForm
Примечание: getForm и getForm() возвращают разные значения.
Этот код работает по требованию, мы можем получить доступ к свойству "form" панели. Если панель содержит форму, это свойство возвращает взамен объект формы, а если панель не содержит форму, она возвращает "неопределенное" который удовлетворил ваше требование.
var formFlag = Ext.getCmp('content-panel').form;
if(formFlag === undefined){
console.log('form is absent');
}else{
console.log('form is present');//formFlag is the form object in this case
}
Запрос компонента должен помочь вам проверить, есть ли форма внутри панели, и вы должны проверить, является ли панель формой.
var panel = Ext.getCmp('content-panel');
//Check if this is a form
var isForm = panel.form
//Check if an inner panel is a form
var hasForm = panel.query('form');
if(isForm && hasForm.length > 0){
//Is or has a form
}