我有一个模态用于根据过滤器过滤项目,我的问题是我可以将它们作为过滤器只给出标题,而我还想给作者和年份输入不同的文本。
这是我的modal.ts函数,仅用于过滤标题(我想过滤标题,作者和年份)
filterItems() {
this.filteritems = this.items.filter(item =>item.title.toLowerCase().indexOf(this.searchTerm.toLowerCase()) > -1);
}
这是我的json的例子:
[
{
"id":"1",
"author": "Chinua Achebe",
"country": "Nigeria",
"imageLink": "images/things-fall-apart.jpg",
"language": "English",
"link": "https://en.wikipedia.org/wiki/Things_Fall_Apart\n",
"pages": 209,
"title": "Things Fall Apart",
"year": 1958
}
]
答案 0 :(得分:1)
您可以连接要过滤的所有字段并测试连接字符串:
this.filteritems = this.items.filter(item
=> (item.title + item.author + item.year).toLowerCase().indexOf(this.searchTerm.toLowerCase()) > -1);})
答案 1 :(得分:0)
为了便于阅读,我说使用这样的东西:
filterItems() {
const searchTerm = this.searchTerm.toLowerCase();
this.filterItems = this.items.filter(item =>
item.title.toLowerCase().includes(searchTerm)
|| item.author.toLowerCase().includes(searchTerm)
|| item.years == searchTerm)
}
这种方法非常易读,因为我们可以准确地看到我们过滤了什么。
另外,这里是String.prototype.includes的文档。
答案 2 :(得分:0)
试试这个:
public function nameDeleteById($data){
$delete_id = $data['delete_id'];
$stmt = $this->pdo->prepare("SELECT * FROM name WHERE id=:delete_id");
$stmt->bindparam(":delete_id", $delete_id);
$stmt->execute();
if ($stmt) {
while ($delimg=$stmt->fetch(PDO::FETCH_ASSOC)) {
unlink($delimg['image']);
unlink($delimg['imagetwo']);
}
}
$stmt=$this->pdo->prepare("DELETE FROM name WHERE id=:delete_id");
$stmt->bindparam(":delete_id", $delete_id);
$stmt->execute();
if ($stmt) {
$msg = 'Name Deleted Successfully';
return $msg;
} else {
$msg = 'Name Not Deleted Successfully';
return $msg;
}
}

注意:根据OP,我假设所有三个字段(标题,作者和年份)都是必填字段。