datalist
является стандартным HTML, поэтому вы можете использовать его внутри Ember (для браузеров, поддерживающих datalist). Единственный реальный трюк заключается в том, что родной компонент Ember input
не проходит через атрибут list
, чтобы вы могли подключить datalist
. К счастью, очень легко расширить Ember.TextView
, чтобы заставить его делать то, что вы хотите.
App.DatalistText = Ember.TextField.extend({
attributeBindings: ['list'],
list : null
});
Затем в шаблоне вы просто сделать что-то вроде этого:
{{view App.DatalistText type="text"
value=""
class="form-control"
placeholder="Country"
disabledBinding="isNotEditing"
list="countries"
size="50"
}}
<datalist id="countries">
{{#each model}}
<option {{bindAttr value="this"}}>
{{/each}}
</datalist>
Вот jsbin: http://jsbin.com/ucanam/977/edit
Большое спасибо - пока это сработало для меня (отсюда и принятый ответ!), Я бы предпочел иметь стиль в стиле выбора и но можете вводить другие параметры. Однако это было действительно полезно в понимании того, как вы можете расширять свои возможности. – jmls
Хм ... Я полагаю, вы могли бы разработать пользовательский виджет, который будет действовать как гибрид компиляции ввода/каталитика и списка выбора, но я не знаю ни одного «родного» html-решения для этого. То, что я делал раньше, - это выбрать список, а затем небольшую кнопку «+» рядом с ним. Когда вы нажимаете кнопку, появляется модальная мода, предлагающая ввести новое значение. Когда вы нажимаете «сохранить» в модальном режиме, создается новая модель Ember и добавляется в коллекцию, поддерживающую список выбора. –
@JeremyGreen Но это не работает в последней версии, вы можете помочь? http://emberjs.jsbin.com/zakiqigafi –