Прямо сейчас у меня есть представление, которое использует ng-show для отображения объекта DOM select
при выполнении определенных критериев и ng-show для DOM для всех остальных случаев. Когда я это делаю и переключаюсь между двумя случаями, поле input
занимает больше времени, чем когда появляется select
. Задержка довольно заметна, поэтому я хочу улучшить ее, чтобы между двумя изменениями DOM была очень небольшая задержка.Улучшение просмотра AngularJS с помощью ngshow
Есть ли способ сделать это?
<div>
<input ng-show="field && (type == 'search' || fieldBucket[field].moreBuckets)"
type="text" ng-model="value">
<select class="facet-value"
ng-show="field && type == 'filter' && !fieldBucket[field].moreBuckets"
ng-model="value"
ng-options="fieldBucket[field].buckets">
</select>
</div>
Вы уверены, что ваши условия изменяются точно в одно и то же время? т. е. когда кто-то становится ложным, другой становится истинным немедленно? – HankScorpio
@HankScorpio Я немного меняю код, чтобы сделать его более простым, но я уверен, что они должны измениться в одно и то же время. Еще одна вещь, которую я попробовал, заключалась в том, чтобы сделать «ng-hide», а другой - «ng-show», и у нее все еще была такая же проблема. – cmata
Я не думаю, что проблема связана с ng-show или ng-hide или ng-if или любой другой директивой. Скорее всего, условия не меняются одновременно. Возможно, один из них полагается на какое-то асинхронное событие, такое как ответ сервера? В любом случае, нет ничего плохого в html, который вы опубликовали. Я предлагаю показать больше вашего кода, включая изменения условий. В соответствии с рекомендациями SO, пожалуйста, создайте плункер, который воспроизводит проблему, если это возможно. – HankScorpio