2015-08-10 2 views
3

У меня есть выбрать тег HTML (используя ВЫБ.2), на мой взгляд Аурелия, в котором я хочу, чтобы добавить атрибут selected к опции тег на основе булево выражение. Выражение будет истинным только один раз. Вот мой код (это работает отлично):Добавить к выбору на основе выражения в Aurelia

<select class="js-example-basic-single" style="width:200px;"> 
    <option repeat.for="region of personRegionDetail" value="${region.Id}">${region.Name}</option> 
</select> 

Я ищу что-то вроде этого (если оно `s возможно) внутри моего вариант тег:

${if(region.Id === persondetail.RegionId){ selected }} 

Я также попытался с помощью JQuery , но это показывает мне выбранную опцию только при обновлении страницы:

<script type="text/javascript"> 
    //Initialize select2 
    $('select.js-example-basic-single').select2(); 
    //I tried this 
    //The searched option value contains ${persondetail.RegionId} 
    $('select.js-example-basic-single').val("${persondetail.RegionId}").trigger("change"); 
</script> 

Я Acces страницы из других, щелкнув на ссылку с помощью route-href="route:routename" (если он что-то говорит).

Мой вопрос: как я могу решить эту проблему, чтобы показать выбранную опцию при вводе на страницу?

EDIT: мне нужно инициализировать ВЫБ.2 после некоторой миллисекунды, чтобы показывает выбранный вариант (возможно, я должен ждать API, чтобы ответить). Это вызвало проблему с jQuery.

ответ

4

Вы должны использовать selected.bind:

<option repeat.for="region of personRegionDetail" value="${region.Id}" selected.bind="region.Id === $parent.Id">${region.Name}</option> 

Plunker: http://plnkr.co/edit/Uy6eQWZu6PrOwaXeArOx?p=preview

+0

Спасибо, это то, что мне нужно! –

+0

Мне нужно инициализировать select2 через несколько миллисекунд (30 мс) для правильной работы. Вероятно, мне нужно дождаться API для отправки данных ... –

+0

, если вы поместите свой код в plnkr, я могу вам помочь ... Вероятно, вы должны инициализировать только после обратного вызова, возможно, используя обещание или smg. – Buzinas