Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.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
Javascript 应用更改字符的筛选器后按名称筛选_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 应用更改字符的筛选器后按名称筛选

Javascript 应用更改字符的筛选器后按名称筛选,javascript,html,angularjs,Javascript,Html,Angularjs,我遇到了一种情况,我需要过滤由“ng repeat”指令创建的元素,但我已经应用了一个自定义过滤器,为每个创建的元素交换一个字符,反之亦然 然后,如果我搜索被交换的新角色,过滤器将找不到它——除非我搜索旧角色 使用交换字符的自定义过滤器后,如何应用此输入过滤器? 在我的自定义过滤器brNumber中,点被逗号替换,反之亦然,因此如果我搜索点,过滤器将只找到带有逗号的点 <div ng-app="myApp" ng-init=" person= [ {f

我遇到了一种情况,我需要过滤由“ng repeat”指令创建的元素,但我已经应用了一个自定义过滤器,为每个创建的元素交换一个字符,反之亦然

然后,如果我搜索被交换的新角色,过滤器将找不到它——除非我搜索旧角色

使用交换字符的自定义过滤器后,如何应用此输入过滤器?

在我的自定义过滤器brNumber中,逗号替换,反之亦然,因此如果我搜索点,过滤器将只找到带有逗号的点

<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对象。这就是问题所在。我宁愿你先试一试,而不是我把答案贴出来。如果你做不到,我会帮助你。