2015-11-14 20 views
9

Aşağıdaki kod var:Aurelia seçmek başlangıç ​​değeri

javascript:

export class App { 
    values = [ 
    {id: 0, text:'Text 1'}, 
    {id: 1, text:'Text 2'}, 
    {id: 2, text:'Text 3'} 
    ]; 

    obj = { 
    selected: 2 
    }; 
} 

html:

<template> 
    <select value.bind="obj.selected"> 
    <option repeat.for="option of values" value="${option.id}">${option.text}</option> 
    </select> 
</template> 

sorun select başlangıç ​​değeri ise yine üçüncü seçenek olmadığıdır beklenildiği gibi.

Doğru şekilde çalışmasını sağlamak için ne yapmalıyım? Emin Her seçenek öğesinin "değer" tipi numarasının da olmak istersiniz böylece

Plunk example

+2

@blm - Benim soru bağladığınız biri ... –

cevap

10

id mülkiyet türü sayısının olduğunu. Bu, bir dize enterpolasyon bağlaması kullanmak istemediğiniz anlamına gelir (örneğin, ${...}) çünkü bunlar her zaman kaynak değerini bir dizgeye dönüştürür. Ayrıca, bu özniteliğin yalnızca dizeleri kabul ettiğinden, değeri depolamak için seçenek öğesinin value özniteliğini kullanmak istemezsiniz. Bunun yerine, aurelia'nın bağlama sistemi özel bir özellik olan model özelliğini kullanın ve herhangi bir türü saklayabilir. Bu tür senaryolar, here dokümanlarında tartışılmaktadır.

TLDR: Bu bağlanma senin seçenek elemanını değiştirin:

<option repeat.for="option of values" model.bind="option.id">${option.text}</option> 
+0

akım Aurelia doc sayfa kopyası olduğunu sanmıyorum seçim için burada: http://aurelia.io/hub.html#/doc/article/aurelia/binding/latest/binding-selects/1 :) –

İlgili konular