2012-06-21 61 views
0

我想將兩個或多個輸入元素綁定到viewModel的一個observable屬性。knockoutjs將多個輸入元素綁定到一個可觀察對象

例如,我可能有一個叫做電話號碼的屬性,它由區號和號碼組成。我想爲用戶輸入顯示兩個文本框,它會更新viewmodel中的單個可觀察對象(它可能以逗號分隔的字符串或數組存儲)。我不想擁有多個屬性,然後擁有電話號碼的計算屬性,因爲我不知道將向用戶顯示多少個文本框以供輸入(使用模板動態生成)。

是否有可能實現?謝謝!

編輯:這裏是爲了更好地理解http://jsfiddle.net/amitava82/wMH8J/2/

回答

0

如果你的數據被組合成一個可觀察的小提琴,你需要somethign解析或將其拆分出來。一種方法是使用計算。如果你想爲電話號碼指定3(只是選擇一個數字)文本框,並且它們都指向1個可觀察的電話號碼,則可以爲這些部分創建讀/寫計算屬性並將它們綁定到輸入文本框。例如,地區代碼文本框將被綁定到計算出的被稱爲地區代碼,該代碼讀取電話號碼的前3個字符。它的可寫方面將簡單地將這3個記錄回到phonenumber observable。

+0

是的我從KO文檔中知道這個技巧。但問題是我不知道預先需要多少文本框(或其他輸入類型)(到目前爲止最多三個)。這個想法是,我將有一個運營商的下拉列表(IS,IN BETWEEN,ONE等)。在選擇時,IS會給我單個文本框/選擇,其中IN BETWEEN呈現兩個文本框,ONE OF給用戶一個多選列表以供選擇(以此類推)。我想將這些輸入中的任何一個捕獲到一個Observable中。我希望我能通過這個想法。 – SamSerious

+0

也許創建一個小提琴來幫助證明你正在嘗試做什麼。 –

+0

如果你不想使用你的視圖模型來管理這個,下一個地方是自定義綁定。如果你提供了一個清晰完整的例子,你可以更具體地回答。 –

相關問題