Итак, я нашел довольно простое решение, которое я публикую здесь для будущего себя, и на тот случай, если кто-то посчитает его полезным. Это был только вопрос изменения положения некоторых элементов
(clickOutside)="clickEvent($event)"
на
<ul class="nav-right">
Так что в итоге моя html разметка выглядит так:
<ul class="nav-right" (clickOutside)="clickEvent($event)">
<li (click)="toggleDropdown('item1')">
<span class="selector">
my Selector
</span>
<ul *ngIf="isActive('item1')">
<li *ngFor="let value of values">
{{city.name}}
</li>
</ul>
</li>
<li (click)="toggleDropdown('other')">
<span class="selector">
Other
</span>
<ul *ngIf="isActive('other')">
<li *ngFor="let otherValue of otherValues">
{{otherValue.name}}
</li>
</ul>
</li>
</ul>
, потому что чего я хотел добиться, так это закрыть все выпадающие списки, когда кто-нибудь щелкает за пределами навигационной панели
Большинство средств управления как TextBoxes и DropDownLists будет функционировать отлично без состояния отображения.
Я не знаю ни о каких проблемах процесса разработки ни кроме каких средств управления, или свойства, созданные или измененные через код, не сохранятся без состояния отображения, таким образом, необходимо было бы воссоздать/изменить их на обратной передаче.
У меня есть некоторые очень большие страницы с большими состояниями отображения. Я сделал эксперимент для отключения состояния отображения для всего проекта, и найденный (сначала) никакая значимая потеря функциональности. Затем несколько небольших проблем подошли в тестировании, таким образом, мы восстановили его. Но наше веб-приложение на 300 страниц было, вероятно, на 99% функционально без состояния отображения. Проблемы, которые мы имели, центрировались вокруг datagrids - подкачка страниц главным образом и динамично создали средства управления и другие вещи, измененные кодом позади, и таким образом не сохраненные без состояния отображения.
Это - очень хорошая статья о Состоянии отображения:
Если Вы то, что против состояния отображения - почему бы не попытаться использовать платформу MVC? Это может быть более легкая корректировка.
Я отключаю состояние отображения на своих проектах. Я использую, рассеиваются/собирают методы, чтобы заполнить и получить значения от aspx страниц, to/from мои объекты доступа к данным. Это намного более чисто и более просто, чем использование состояния отображения.