2015-09-04 3 views
1

У меня есть несколько полей в моей форме. Когда пользователь изменяет выбранное значение в раскрывающемся списке, в каждом поле отображается hideExpression, которое отображает/скрывает поля в зависимости от того, что выбрал пользователь. В настоящее время это работает нормально.Угловая форма - Скрыть выражение при загрузке страницы

Однако, я пытаюсь сделать выпадающее меню по умолчанию первым параметром в списке. Это также отлично работает.

Моя проблема заключается в том, что вся логика hideExpression не запускается при загрузке экрана. Таким образом, выбор правилен по умолчанию, но ни одно из полей (которые должны отображаться), которые идут с этой опцией, видимы.

Если я вручную изменяю выпадающее значение, тогда все будет отображаться правильно. Есть ли способ сделать логику hideExpression стартовым, даже когда выбор по умолчанию выполняется по коду?

Вот JSBin мой вопрос: http://jsbin.com/doliyiruza/edit?js,console,output

На странице по умолчанию option2. Тем не менее, есть скрытое поле, которое должно отображаться при выборе Option2. Поэтому, если вы измените раскрывающийся список на Option1, а затем вернитесь к Option2 ... вы увидите скрытое поле. Скрыть/показать логику, похоже, не запускается, если по умолчанию вы устанавливаете выпадающее меню до определенного значения.

+0

Может ли вы предоставить свой код даже плункер? –

+0

Лучше всего следовать инструкциям здесь: http://help.angular-formly.com – kentcdodds

+0

Я обновил свой вопрос на примере моей проблемы. Я должен был бросить это там, в первую очередь. – Holt

ответ

1

Я не уверен на 100%, почему то, что у вас было, не работает, но запрос DOM в вашем контроллере - очень плохая идея. Кроме того, угловато-формально намеренно пытается сделать идентификаторы полей недетерминированными, поэтому вы не можете этого сделать (вероятно, сделать это более случайным). Вот что я думаю, что вы пытаетесь выполнить: http://jsbin.com/bifaza/edit?js,console,output

Смежные вопросы