如何使用TS在Angular 2中搜索对象的所有属性中的字符串.
如果用户键入一个值,我想搜索所有属性值以推送符合键入值的客户,我会在带有搜索框的表中呈现一组客户.
export var CUSTOMER: Client[] = [
{ id: 1, name: 'John', phone: '888-888-888'},
{ id: 2, name: 'Nick', phone: '555-888-888'},
{ id: 3, name: 'Mike', phone: '666-888-888'},
];
Run Code Online (Sandbox Code Playgroud)
过滤管
import {Pipe, PipeTransform, Injectable} from "@angular/core";
@Pipe({
name: 'filter',
pure: false
})
@Injectable()
export class Ng2SearchPipe implements PipeTransform {
transform(items: any, term: any): any {
if (term === undefined) {
return items;
}
return items.filter(function(item){
return item.name.toLowerCase().includes(term.toLowerCase());
});
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的过滤管道中,我只能按名称搜索.我不知道如何处理这个问题.我应该为Customer对象创建一个方法,该方法返回连接的所有属性值,然后在此连接值上搜索该术语吗?
我不知道我做错了什么,但是在尝试使用离子和Cordova插件时,我在离子发送后收到以下错误:"无法解析[object OBJECT],[object OBJECT],[object OBJECT]的所有参数, [object OBJECT],[object OBJECT],?"
import { Component, Injectable } from '@angular/core';
import { NavController } from 'ionic-angular';
import { ToastController } from 'ionic-angular';
import { File } from '@ionic-native/file';
import { Diagnostic } from '@ionic-native/diagnostic';
import { CameraPreview, CameraPreviewOptions, CameraPreviewDimensions} from '@ionic-native/camera-preview';
declare var cordova: any;
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [CameraPreview, Diagnostic]
})
export class HomePage {
constructor(
public navCtrl: NavController,
public toastCtrl: ToastController,
public file:File,
public diagnostic:Diagnostic,
public cameraPreview: CameraPreview,
public previewRect: CameraPreviewOptions
) …Run Code Online (Sandbox Code Playgroud) 我在下面缺少什么?我正在尝试将Cordova-camera-plugins和ionic native与Ionic 2配合使用,但是在ionic服务后收到以下运行时错误:“无法解析HomePage的所有参数:([[object Object],[object Object], [对象对象],[对象对象] 、?)。”
Home.ts
import { Component, Injectable } from '@angular/core';
import { NavController } from 'ionic-angular';
import { ToastController } from 'ionic-angular';
// import { File } from '@ionic-native/file';
import { Diagnostic } from '@ionic-native/diagnostic';
import { CameraPreview, CameraPreviewOptions, CameraPreviewDimensions} from '@ionic-native/camera-preview';
declare var cordova: any;
@Component({
selector: 'page-home',
templateUrl: 'home.html',
})
@Injectable()
export class HomePage {
constructor(
private navCtrl: NavController,
private toastCtrl: ToastController,
// public file:File,
public diagnostic:Diagnostic,
public cameraPreview: CameraPreview,
public previewRect: CameraPreviewOptions …Run Code Online (Sandbox Code Playgroud)