Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Knockout.js 在数据绑定内创建筛选条件:foreach_Knockout.js - Fatal编程技术网

Knockout.js 在数据绑定内创建筛选条件:foreach

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”,电

是否可以在foreach中创建一个过滤器。我的目标是显示我的ko.obervableArray中的特定数据。在我在jsfiddle上创建的示例中,我的目标是只显示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.应用绑定(新引用数组()
)

名称地址类型

您的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绑定到
家庭项目,而不是
项目