用户选择时不显示Knockout.js Computed
我有一个表,其中每一行都绑定到一个Knockout.js模型:用户选择时不显示Knockout.js Computed,knockout.js,observable,computed-observable,Knockout.js,Observable,Computed Observable,我有一个表,其中每一行都绑定到一个Knockout.js模型: foreach: treatmentsOptions 我希望用户能够在每个表行中单击“添加”按钮,并且该按钮的颜色不同,并且可以添加多个行。我想我应该通过给名为IsSelected的模型属性赋值,然后使用样式绑定来实现 我有这段代码,看起来很有效,但显然没有根据我想要的内容进行过滤: self.treatmentsOptions=ko.computed(函数(){ _dummyObservable() var是链接的=$.map(
foreach: treatmentsOptions
我希望用户能够在每个表行中单击“添加”按钮,并且该按钮的颜色不同,并且可以添加多个行。我想我应该通过给名为IsSelected的模型属性赋值,然后使用样式绑定来实现
我有这段代码,看起来很有效,但显然没有根据我想要的内容进行过滤:
self.treatmentsOptions=ko.computed(函数(){
_dummyObservable()
var是链接的=$.map(self.treatments(),函数(obj){
for(var i=0;i
}))
现在,我想要的是,每当用户单击“Add”(添加)并触发该命令时,以下代码都将工作:
self.treatmentsOptions = ko.computed(function () {
_dummyObservable();
var is_linked = $.map(self.treatments(), function (obj) {
for (var i = 0; i < self.linkedItems().length; i++) {
if (self.linkedItems()[i].PriceListItemId() == obj.Id())
return obj.Id();
}
});
for (var i = 0 ; i < self.treatments().length ; i++) {
self.treatments()[i].IsSelected = ko.observable(false);
if (is_linked.includes(parseInt(self.treatments()[i].Id()))) {
self.treatments()[i].IsSelected = ko.observable(true);
}
else {
self.treatments()[i].IsSelected = ko.observable(false);
}
}
var options = self.treatments();
return options;
});
self.treatmentsOptions=ko.computed(函数(){
_dummyObservable();
var是链接的=$.map(self.treatments(),函数(obj){
for(var i=0;i
我想把每一排桌子都涂上颜色。
我在这里缺少什么?通过使用值调用它们来设置ko.observable
s。此代码块看起来非常可疑:
// Don't do this:
self.treatments()[i].IsSelected = ko.observable(false);
if (i % 2 == 0) {
self.treatments()[i].IsSelected = ko.observable(true);
}
else {
self.treatments()[i].IsSelected = ko.observable(false);
}
它可能应该被以下内容取代:
self.treatments()[i].IsSelected(i % 2 === 0);
请注意,可以使用n个子(奇数)
和n个子(偶数)
选择器在css中设置交替颜色行的样式
您还可以在
foreach
绑定的绑定上下文中使用$index
属性。谢谢,我会修复此代码,但我问的是用户选择(代码的第二部分)。你也有答案吗?
self.treatments()[i].IsSelected(i % 2 === 0);