我試圖讓我的頭在淘汰賽js周圍觀察! 但是,我正面臨着在可觀察數組上執行remove函數的問題。淘汰賽js刪除不起作用
我的JS是如下:
$(function() {
var data = [{ name: "name1" }, { name: "name2" }, { name: "name3"}];
var viewModel = {
namesList: ko.observableArray(data),
nameToAdd: ko.observable("name4"),
myCustomAddItem: function() {
this.namesList.push({ name: this.nameToAdd() });
},
myCustomRemove: function() {
console.log("before + " + this.nameToAdd());
this.namesList.remove(this.nameToAdd());
console.log("after + " + this.nameToAdd());
}
};
ko.applyBindings(viewModel);
});
和我的HTML是:
Name To add/remove <input type="text" data-bind="value: nameToAdd, valueUpdate: 'afterkeydown'"/>
<ul data-bind="template: {name: 'listTemp1', foreach :namesList}">
</ul>
<p>
<button data-bind="click: myCustomAddItem">Add Item</button>
<button data-bind="click: myCustomRemove">Remove Item</button>
<script id="listTemp1" type="text/html">
<li data-bind="text:name"> </li>
</script>
</p>
我myCustomAddItem工作正常,但不是myCustomRemove。我還在this.namesList.remove(this.nameToAdd());
之前和之後放置了一個console.log,以查看是否有任何錯誤,但是在那裏我看不到任何錯誤。當我點擊「刪除項目」按鈕時,螢幕控制檯會顯示日誌,但該項目並未從列表中移除。
任何幫助表示讚賞
感謝您的詳細評論。它真的有助於瞭解現在發生了什麼:) – CjCoax 2011-12-30 22:13:52