场景: 我有一个项目数组,每个项目都有属性(模型,id),
$scope.arrayOfItems = [{
model : 'L_',
id : 01
},
{
model : 'L_',
id : 2323
},
{
model : 'L_',
id : 434
}
];
对于每个项目,这两个属性都合并成一个项目标签。 我正在尝试过滤两个 VISUALLY 合并表达式
{{::item.model}}{{::item.id}}
model = 'L_';
id = 03;
因此结果将是 L_03
如果我想在输入字段中搜索标签'L_2323',然后键入'L _',然后输入ID,所有列表项都会消失。 / p>
我希望能够键入'L_2323'并显示相应的列表项
我知道我可以遍历并合并所有模型和id,并放入控制器中的数组中,并在主要项目的循环中显示该数组的每个项目,但这似乎是一种浪费的解决方案,我正在尝试以更务实的方式解决问题
我已经添加了此错误的代码笔
Codepen
答案 0 :(得分:1)
基本搜索代码可以是这样的:
const arr = [{
model: 'L_',
id: '01'
}, {
model: 'L_',
id: '2323'
}, {
model: 'L_',
id: '434'
}];
const search = function(searchTerm) {
return arr.filter(item => {
const fullName = item.model + item.id;
return fullName.includes(searchTerm);
})
}
const searResult1 = search('01');
console.log(searResult1);
const searResult2 = search('L_');
console.log(searResult2);
https://jsfiddle.net/90Lc7dt8/8/
我们在这里做的是:
fullName
,其中包含您要搜索的信息现在,您需要的只是输入的角度代码。
ng-model
ng-repeat
列出结果以下是有关码笔的角度示例: https://codepen.io/bergur/pen/yqKaKw?editors=1010#0
答案 1 :(得分:1)
只需编写一个自定义过滤器,即可扫描数组以查找#encoding: utf-8
import re
from bs4 import BeautifulSoup
#example HTML
html = """
<html>
<head>
<title>Link page</title>
</head>
<body>
<a href="https://www.google.com" class="link">Google</a>
<a href="https://www.yahoo.com" class="link">Yahoo</a>
<a href="https://www.stackoverflow.com" class="link">Stackoverflow</a>
</body>
</html>
"""
parsed_html = BeautifulSoup(html, "lxml")
links = [a["href"] for a in parsed_html.find_all("a")]
if len(links) ==0:
print("Sorry, no links found")
else:
count = len(links)
for e in links:
print(e)
#print the total amount of links
print(count, "links in total")
print('--------------')
的匹配项。这是它的外观的快速演示:
model + id
var app = angular.module('myApp', []);
app.filter('myFilter', function() {
return function(arrayOfItems, input) {
var res = [];
if (input) {
for (var i = 0; i < arrayOfItems.length; i++) {
var item = arrayOfItems[i];
if ((item.model + item.id).match(input)) { // match
res.push(item);
}
}
// don't return an empty array if nothing was found
return (res.length > 0) ? res : arrayOfItems;
}
return arrayOfItems; // default (no input given)
};
});
app.controller('namesCtrl', function($scope) {
$scope.arrayOfItems = [{
model: 'L_',
id: 01
},
{
model: 'L_',
id: 2323
},
{
model: 'L_',
id: 434
}
];
});