假设JavaScript数组是特定类型的javascript对象(关联数组),我们只能使用ko.observable()而不是ko.observableArray()吗? 特别是如果我们不想观察数组属性的变化,比如长度......
作为一个例子,在这些基于任务列表的淘汰项目中,我们只需添加一个新任务,如下所示
tasklist[newtask.title]=newtask.description
在对象中(关联数组)。 这是对的吗?
这里是一个字符串示例http://jsfiddle.net/zfjqd6oa/
答案 0 :(得分:0)
@origineil谢谢你的提议。是的,这正是我想要的。这样我就可以直接访问我的“特定项目”(作为关联数组)http://jsfiddle.net/xgup9Lsv/
var SimpleListModel = function () {
var self = this;
self.items = ko.observable({});
self.itemToAdd = ko.observable("");
self.addedItems = ko.computed(function(){
return Object.keys(self.items())});
self.addItem = function () {
console.log("add")
if (self.itemToAdd() != "") {
var addition = self.itemToAdd()
self.items()[addition] = addition
self.items.valueHasMutated()
}
}
};
var model = new SimpleListModel()
ko.applyBindings(model);