Как отключить multi-select-component в виджетах ember
Есть ли способ отключить multi-select-component из ember-виджетов addepar?
Это работает для одного select-component
{{select-component
contentBinding="selectCountries"
prompt="Select a Country"
value=selectSelected
disabled=true
}}
То же самое не работает для multi-select-component
{{multi-select-component
contentBinding="selectCountries"
prompt="Select a Country"
selections=multiSelectSelected
disabled=true
}}
Вот неработающий пример JS bin. Я просмотрел исходный код, кажется, нет возможности для этого.
1 ответ
Самый быстрый способ, которым я мог придумать, если не считать редактирования исходного кода, был такой (обновленный JS bin):
Я определил компонент Ember, который принимает массив строк (selections
) как его единственный параметр. Я использовал все классы, которые используются multi-select-component
поэтому мне не пришлось переопределять все CSS:
<script type="text/x-handlebars" id="components/disabled-multi-select">
<div class="ember-view ember-select multi-select-disabled" tabindex="-1">
<div class="ember-select-container ember-select-multi dropdown-toggle js-dropdown-toggle">
<ul class="form-control ember-select-choices">
{{#each selection in selections}}
<li class="ember-view ember-select-search-choice">
<div>{{selection}}</div>
<div class="ember-select-search-choice-close">×</div>
</li>
{{/each}}
</ul>
</div>
</div>
</script>
Затем я добавил немного CSS, чтобы он выглядел как отключенный выбор:
.ember-select.multi-select-disabled > .ember-select-container > .form-control {
cursor: not-allowed;
background-color: #EEE;
opacity: 1;
}
.ember-select.multi-select-disabled > .ember-select-container .ember-select-search-choice {
background-color: #D8D8D8;
cursor: not-allowed;
}
.ember-select.multi-select-disabled > .ember-select-container .ember-select-search-choice .ember-select-search-choice-close {
cursor: not-allowed;
}
.ember-select.multi-select-disabled > .ember-select-container .ember-select-search-choice .ember-select-search-choice-close:hover {
background-color: #D8D8D8;
}
Используется так:
{{#if isInputDisabled}}
// Stick your multi-select-component in here
{{else}}
{{disabled-multi-select selections=multiSelectSelected}}
{{/if}}