Knockout.js Observable数组和在KnockoutJS中更改css类
我有一个非常简单的问题,但作为一个新手,我很挣扎 我希望有几个可点击的按钮,当按下时可以更改css类和send以及ajax查询(基本上可以切换或不切换) 以下是我的精彩观点:Knockout.js Observable数组和在KnockoutJS中更改css类,knockout.js,Knockout.js,我有一个非常简单的问题,但作为一个新手,我很挣扎 我希望有几个可点击的按钮,当按下时可以更改css类和send以及ajax查询(基本上可以切换或不切换) 以下是我的精彩观点: function addStuffViewModel() { // Data var self = this; self.movement = ko.observableArray([ { name: 'Car', isChecked: false }, { name
function addStuffViewModel() {
// Data
var self = this;
self.movement = ko.observableArray([
{ name: 'Car', isChecked: false },
{ name: 'Bus', isChecked: false },
{ name: 'Bike', isChecked: false },
]);
toggleButton = function(data,event) {
data.isChecked = true;
alert(data.isChecked)
}
};
ko.applyBindings(new addStuffViewModel());
这是电话:
这会提醒您,isChecked已更改,但observableArray未注册更改。我觉得我希望它比实际情况更“神奇”
我相信这是一个怪诞的错误,人们会笑,但任何帮助都会被感激的你想要“倾听”的可观察数组中每个对象的属性也需要被观察。通常,执行此操作的方法是创建另一个描述这些对象的ViewModel:
function Item(name, isChecked) {
this.name = ko.observable(name);
this.isChecked = ko.observable(isChecked);
}
然后更新可观测阵列:
self.movement = ko.observableArray([
new Item('Car', false),
new Item('Bus', false),
new Item('Bike', false)]);
示例:
您可以通过定义
项
上的切换按钮
功能进一步收紧代码:
function Item(name, isChecked) {
var self = this;
this.name = ko.observable(name);
this.isChecked = ko.observable(isChecked);
this.toggleButton = function () {
self.isChecked(true);
};
}
。。。然后更新您的视图:
正如我所说,新手犯了错误。谢谢我一直在这件事上扯头发……)@阿尔班德:没问题!很乐意帮忙。