Как проверить, содержит ли панель форму?

У меня есть куча панелей, из которых одна не имеет формы. При навигации между панелями мне нужно проверить, есть ли форма.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
}
Другие вопросы по тегам