2013-09-10 4 views

ответ

3

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

+0

Большое спасибо - пока это сработало для меня (отсюда и принятый ответ!), Я бы предпочел иметь стиль в стиле выбора и но можете вводить другие параметры. Однако это было действительно полезно в понимании того, как вы можете расширять свои возможности. – jmls

+0

Хм ... Я полагаю, вы могли бы разработать пользовательский виджет, который будет действовать как гибрид компиляции ввода/каталитика и списка выбора, но я не знаю ни одного «родного» html-решения для этого. То, что я делал раньше, - это выбрать список, а затем небольшую кнопку «+» рядом с ним. Когда вы нажимаете кнопку, появляется модальная мода, предлагающая ввести новое значение. Когда вы нажимаете «сохранить» в модальном режиме, создается новая модель Ember и добавляется в коллекцию, поддерживающую список выбора. –

+0

@JeremyGreen Но это не работает в последней версии, вы можете помочь? http://emberjs.jsbin.com/zakiqigafi –

0

С ember.js 1.8, следующий код работает:

{{input type="text" value="" class="form-control" list="browsers-list"}} 
<datalist id="browsers-list"> 
{{#each b in browsers}} 
    <option {{bind-attr value=b}}> 
{{/each}} 
</datalist> 
+0

Но это не работает ember 1.11.3 версия http://jsbin.com/kukayuzisi/1/edit?html,js –

+1

@VysakhSreenivasan похожа на известную регрессию: https://github.com/emberjs/ember.js/вопросы/10908 –

Смежные вопросы