2014-06-13 30 views
0

我對於使用淘汰賽非常陌生,覺得我正在做的一些事情有點冒失,所以讓我知道如果我在做什麼這是錯誤的,我應該做更好的方法。如何在更新輸入字段時更新knockout.js中的observableArray項目

我的模型的一個屬性是一個字符串數組。在用戶界面中,我爲數組中的每個項目創建一個輸入字段。

我想要的是在更新輸入字段的值時更新模型中的項目。

假設我有一個名爲CarRentalCodes屬性,它是一個observableArray,這裏是我的部分觀點

 <div data-bind="foreach: CarRentalCodes()"> 
     <input type="text" style="width:40px; display:inline" class="form-control" data-bind="value: $data"/> 
    </div> 

它列出了正確的值輸入字段,但我改變他們,他們不更新在模型中。

我是否需要用JavaScript手動替換值,還是有內置的敲除可以解決這個問題對我來說?

回答

1

看看他們非常好的文檔。

http://knockoutjs.com/documentation/observableArrays.html#key-point-an-observablearray-tracks-which-objects-are-in-the-array-not-the-state-of-those-objects

你需要做的是輸入掛鉤到可觀察到的,而不是隻是一個字符串。

下面是一個例子:http://jsfiddle.net/edhedges/ssekY/並且因爲它必須附有代碼:

function vm() { 
    this.myArr = ko.observableArray([ 
     new myObj('1'), 
     new myObj(''), 
     new myObj('hello'), 
     new myObj('there') 
    ]); 
} 

function myObj(myObjs) { 
    this.myObs = ko.observable(myObjs); 
} 

ko.applyBindings(new vm()); 
+0

爲我工作。而不是僅僅將字符串推入到一個ovservableArray中,我推送{val:ko.observable(value)}。現在我可以看到它們的變化。謝謝! – bsayegh

+0

@bsayegh是啊,那只是我懶惰,至於我如何將數據放入數組。很高興它爲雅工作。 – edhedges

相關問題