根据Aurelia中的表达式将所选属性添加到选项

时间:2015-08-10 11:03:21

标签: jquery html jquery-select2 aurelia aurelia-binding

我在Aurelia视图中有一个选择 html标记(使用select2),我希望在{<1>}属性中添加selected属性选项标记布尔表达式。表达式只会为真一次。这是我的代码(这很好用):

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

我在选项标记内寻找类似的内容(如果可能的话):

${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>

我通过点击使用route-href="route:routename"的链接从另一个视图访问该页面(如果它有所说明)。

我的问题是,当我进入页面时,如何解决此问题以显示所选选项?

修改 我需要在几毫秒后初始化select2以显示所选的选项(可能我必须等待API响应)。这导致了jQuery的问题。

1 个答案:

答案 0 :(得分: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