Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.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/1/typescript/8.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
Angular PipeTransform在ionic2中不工作_Angular_Typescript_Ionic Framework_Pipe_Ionic2 - Fatal编程技术网

Angular PipeTransform在ionic2中不工作

Angular PipeTransform在ionic2中不工作,angular,typescript,ionic-framework,pipe,ionic2,Angular,Typescript,Ionic Framework,Pipe,Ionic2,我有一些东西要换词 示例:lang->language 我想使用一个选项来显示第一个字母为大写的所有项目 示例:作者->作者 范例 author Author lang Language date Date loca Location 麦可德 <ion-select [(ngModel)]="refine" (ionChange)="optionsFn(item, i);" > <ion-op

我有一些东西要换词

示例:lang->language

我想使用一个选项来显示第一个字母为大写的所有项目

示例:作者->作者

范例

author        Author
lang          Language
date          Date
loca          Location
麦可德

<ion-select [(ngModel)]="refine" (ionChange)="optionsFn(item, i);" >
        <ion-option [value]="item"  *ngFor="let item of totalfilter | mypipe;let i = index" >{{item["@NAME"]}}</ion-option>
      </ion-select>
不工作,错误为

无法读取未定义的属性“筛选器”

这样做:

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
    name: 'mypipe', pure: false
})
export class MyPipe implements PipeTransform {

    transform(items: any[]): any[] {
        if (items && items.length)
          return items.filter(it => it["@NAME"] = it["@NAME"].charAt(0).toUpperCase() + it["@NAME"].slice(1));
        return items;  
    }

}

您可以这样尝试吗,让(totalfilter | mypipe)的项。您是否在应用程序模块中注册了管道仍然错误,是的,我在应用程序模块中注册了“../providers/mypipe”>
import{mypipe}”和声明添加了
MyPipe
,还有哪里?谢谢,我知道了。我有个新问题!我想添加
it[“@NAME”].replace('lang','Language')
如何添加,我尝试
返回items.filter(it=>it[“@NAME”]=it[“@NAME”].replace('lang','Language')&&it[“@NAME”].charAt(0.toUpperCase()+it[“@NAME”].slice(1))
此大写的除item
lang
之外的所有项都不会更改为
Language
,但此更改
lang
会先过滤项数组,然后过滤。。您可以映射这些项目。这里发生的事情是你同时在做这两件事。您无法监视正在实现的值。我想将所有项都大写,并将某些项的单词更改为大写。无法执行此操作?
*ngFor=“totalfilter的let项| mypipe |大写;let i=index”
Angular 2已内置大写管道
import { Pipe, PipeTransform } from '@angular/core';

@Pipe({
    name: 'mypipe', pure: false
})
export class MyPipe implements PipeTransform {

    transform(items: any[]): any[] {
        if (items && items.length)
          return items.filter(it => it["@NAME"] = it["@NAME"].charAt(0).toUpperCase() + it["@NAME"].slice(1));
        return items;  
    }

}