Javascript 应用更改字符的筛选器后按名称筛选
我遇到了一种情况,我需要过滤由“ng repeat”指令创建的元素,但我已经应用了一个自定义过滤器,为每个创建的元素交换一个字符,反之亦然 然后,如果我搜索被交换的新角色,过滤器将找不到它——除非我搜索旧角色 使用交换字符的自定义过滤器后,如何应用此输入过滤器? 在我的自定义过滤器brNumber中,点被逗号替换,反之亦然,因此如果我搜索点,过滤器将只找到带有逗号的点Javascript 应用更改字符的筛选器后按名称筛选,javascript,html,angularjs,Javascript,Html,Angularjs,我遇到了一种情况,我需要过滤由“ng repeat”指令创建的元素,但我已经应用了一个自定义过滤器,为每个创建的元素交换一个字符,反之亦然 然后,如果我搜索被交换的新角色,过滤器将找不到它——除非我搜索旧角色 使用交换字符的自定义过滤器后,如何应用此输入过滤器? 在我的自定义过滤器brNumber中,点被逗号替换,反之亦然,因此如果我搜索点,过滤器将只找到带有逗号的点 <div ng-app="myApp" ng-init=" person= [ {f
<div
ng-app="myApp"
ng-init="
person=
[
{firstName:'Johnny',lastName:'Dowy'},
{firstName:'Homem,25',lastName:'Cueca,Suja'},
{firstName:'Alleria.Donna',lastName:'Windrunner'}
];"
>
First Name: <input type="text" ng-model="firstName">
<br />
The persons's objects have: | <span ng-repeat="i in person | orderBy: 'firstName' | filter:firstName">{{ ( i.firstName + ' ' + i.lastName ) | brNumber }} | </span>
<div
ng-app="myApp"
ng-init="
person=
[
{firstName:'Johnny',lastName:'Dowy'},
{firstName:'Homem,25',lastName:'Cueca,Suja'},
{firstName:'Alleria.Donna',lastName:'Windrunner'}
];"
>
First Name: <input type="text" ng-model="firstName">
<br />
The persons's objects have: | <span ng-repeat="i in person | orderBy: 'firstName' | filter:firstName">{{ ( i.firstName + ' ' + i.lastName ) | brNumber }} | </span>
名字:
人物的对象有:{{(i.firstName+''+i.lastName){brNumber}}}
{Javascript.js}
app.filter( 'brNumber', function()
{
return function( text )
{
string = text.toString();
returnString = '';
for ( i = 0; i < string.length; i++ )
{
returnString += string[i] === ',' ? '.' :
(
string[i] === '.' ? ',' : string[i]
);
}
return returnString;
}
});
app.filter('brNumber',function()
{
返回函数(文本)
{
字符串=text.toString();
returnString='';
对于(i=0;i
您可以将过滤后的值包装到与视图中的过滤器相同的函数中。检查这个
我不确定你所做的是否正确。您没有修改模型,即person,因此过滤器仍应用于原始模型。您可以再次迭代person对象,以确认模型中当前存在的值。你所需要做的就是更新你的模型。谢谢,但是如果可能的话,你能评估一下吗?我对Angular是个新手,我正在根据我发布的内容做一些工作。它基本上会从数据库中获取原始价格值,并根据本地化和国家汇率在前端显示不同的货币值。我猜您是在从查询筛选器返回新字符串,而不是修改原始person对象。这就是问题所在。我宁愿你先试一试,而不是我把答案贴出来。如果你做不到,我会帮助你。