我正在使用ui-select作为下拉选项,它非常接近示例演示代码。 ui-select一切都很棒。我现在正在添加一个角度材料复选框。目的是让复选框启用/禁用下拉选择。我将ui-select元素的ng-disabled属性设置为我在复选框中使用的状态变量。它工作正常,当我取消选中该框时,下拉选择被禁用,当我选中该框时,下拉选择已启用。
我想要在禁用下拉列表选项时返回默认占位符(当尚未选择任何项目时)。也就是说,在选择下拉项后,它将显示在ui-select中,替换默认占位符。当下拉选择被禁用时,我希望占位符替换当前选定的项目。这样,当再次启用下拉列表时,它将从占位符开始。我尝试了不同的方法,但是我并没有足够精通角度才能让它发挥作用。如果我启用了清除功能,我会得到'X',它确实会清除选择并返回占位符,但我需要从复选框回调中以编程方式执行此操作。
那么如何在复选框元素的toggleSession点击回调中强制ui-select元素的占位符?
我对角度印象非常深刻,但是尝试重新训练我的旧思维/习惯以解决如何编码角度方式非常痛苦。
无论如何,任何帮助将不胜感激。这是我的工作代码:
<ui-select class="vic-session-select" ng-model="session.selected" theme="select2" ng-disabled="!useSession">
<ui-select-match placeholder="Select a session or search name...">
{{$select.selected.date}} - {{$select.selected.name}}
</ui-select-match>
<ui-select-choices repeat="session in sessions | propsFilter: {name: $select.search, date: $select.search}">
<div class="vic-overlay-select-list-item" ng-bind-html="session.date | highlight: $select.search"></div>
<span> - </span>
<div class="vic-overlay-select-list-item" ng-bind-html="session.name | highlight: $select.search"></div>
</ui-select-choices>
<ui-select>
<md-checkbox class="vic-use-session-queue-checkbox" aria-label="Session Checkbox"
ng-checked="useSession" ng-click="toggleSession()">
<span class="vic-session-checkbox-label">Use a predefined session with its overlays</span>
</md-checkbox>