Knockout.js 在数据绑定内创建筛选条件:foreach
是否可以在foreach中创建一个过滤器。我的目标是显示我的ko.obervableArray中的特定数据。在我在jsfiddle上创建的示例中,我的目标是只显示type=“family”Knockout.js 在数据绑定内创建筛选条件:foreach,knockout.js,Knockout.js,是否可以在foreach中创建一个过滤器。我的目标是显示我的ko.obervableArray中的特定数据。在我在jsfiddle上创建的示例中,我的目标是只显示type=“family” 名称地址类型 var people=[ {姓名:“联系人1”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“family”}, {姓名:“联系人1”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电
名称地址类型
var people=[
{姓名:“联系人1”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“family”},
{姓名:“联系人1”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“family”},
{姓名:“联系人1”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“family”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
];
var quotesarray=函数(){
var self=这个;
self.items=ko.observearray();
setInterval(函数(){
self.items.removeAll();
ko.utils.arrayPushAll(self.items,people)
},1000);
};
ko.应用绑定(新引用数组()
)
您的HTML代码中有一个输入错误:“ko:type=='family'”必须替换为“ko-if:type=='family'”
var-people=[
{姓名:“联系人1”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“family”},
{姓名:“联系人1”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“family”},
{姓名:“联系人1”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“family”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
];
var quotesarray=函数(){
var self=这个;
self.items=ko.observearray();
setInterval(函数(){
self.items.removeAll();
ko.utils.arrayPushAll(self.items,people)
},1000);
};
ko.应用绑定(新引用数组()
)
名称地址类型
您的HTML代码中有一个输入错误:“ko:type=='family'”必须替换为“ko-if:type=='family'”
var-people=[
{姓名:“联系人1”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“family”},
{姓名:“联系人1”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“family”},
{姓名:“联系人1”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“family”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
{姓名:“联系人2”,地址:“1,一条街,一个城镇,一个城市,AB12 3CD”,电话:“0123456789”,电子邮件:anemail@me.com,键入:“friend”,键入:“1”},
];
var quotesarray=函数(){
var self=这个;
self.items=ko.observearray();
setInterval(函数(){
self.items.removeAll();
ko.utils.arrayPushAll(self.items,people)
},1000);
};
ko.应用绑定(新引用数组()
)
名称地址类型
不要为这个小东西使用无容器if语法,它可能会完成任务,但您确实不需要这样做,它的性能比其他解决方案差得多,而且它会弄脏您的dom。
您可以尝试使用计算的,当原始数组更改时,它将自身求值,并且每次仅返回该数组中的族项
您可以尝试以下方法:
self.familyItems = ko.pureComputed(function(){
return self.items().filter(function(i){ return i.type === 'family'})
});
然后将您的foreach绑定到
familyItems
而不是项
不要对这个小东西使用无容器if语法,它可能会完成任务,但您确实不需要这样做,它的性能比其他解决方案差得多,并且会弄脏您的dom。
您可以尝试使用计算的,当原始数组更改时,它将自身求值,并且每次仅返回该数组中的族项
您可以尝试以下方法:
self.familyItems = ko.pureComputed(function(){
return self.items().filter(function(i){ return i.type === 'family'})
});
然后将您的foreach绑定到家庭项目,而不是项目