0
請在這個要點(https://gist.run/?id=549282ece087785a3b7f6eb9c9d6a6d4),selectedValue不應該有「選項json對象」的值? 似乎與datalist元素內的選項html元素上的model.bind進行綁定,與select元素內部的方式不同。 謝謝。Aurelia綁定行爲與HTML 5 datalist
請在這個要點(https://gist.run/?id=549282ece087785a3b7f6eb9c9d6a6d4),selectedValue不應該有「選項json對象」的值? 似乎與datalist元素內的選項html元素上的model.bind進行綁定,與select元素內部的方式不同。 謝謝。Aurelia綁定行爲與HTML 5 datalist
綁定系統沒有針對input + datalist的特殊邏輯。這很容易用input.delegate
添加綁定:
https://gist.run/?id=dc040a0087aa8a99a5f2dc0fc721dca3
app.html
<template>
<input type="text" list="myDatalist" input.delegate="selectedValue = findOption($event.target.value)" />
<datalist id="myDatalist">
<option repeat.for="option of options">${option.name}</option>
</datalist>
<pre style="margin-top: 100px"><code>${selectedValue}</code></pre>
</template>
app.js
export class App {
selectedValue = null;
options = [ { id: 1, name: 'one' }, { id: 2, name: 'two' } ];
findOption = value => this.options.find(x => x.name === value);
}
用戶可以自由在任何輸入他們想要的,甚至是不符合建議的東西datalist,所以你需要爲此計劃。
謝謝你,傑里米。但是,我無法展示一件事,並將模型與另一件模型綁定在一起?在我們正在構建的應用程序中,所討論的'name'屬性有時會很大,所以我想避免通過匹配名稱進行搜索......我開始考慮數據集可能不是適合使用的元素,在我們的例子中... –
在我的例子中,'selectedValue'被分配了一個對象(其中一個選項)。你需要想出一個將輸入值(字符串)映射到特定選項對象的機制。我創建了一個函數,在我的例子中找到了匹配名稱的選項。這是我無法解決的,我知道。 datalist元素不會引發任何事件,並且輸入元素的輸入/更改事件不會告訴您何時選擇了datalist選項與標準數據輸入。 –
對,謝謝。 –