Angular 2存储变量中的管道值

时间:2016-10-07 12:48:08

标签: angular typescript angular2-template angular2-forms

我有一个名为search的管道,我希望将返回的管道值存储在这样的项目中(在我的模板中)

let searchedItems = items | search

任何想法?

3 个答案:

答案 0 :(得分:3)

好吧,假设你在一个组件中,你可以实例化一个新管道,并像这样应用他的内联转换:

let searchedItems = new SearchPipe().transform(items);

此外,您可以利用Angular2的注射系统:

import { SearchPipe} from './pipes';

class SearchService {

    constructor(private searchPipe: SearchPipe) {

    }

    public searchItems(items: any[]): any[]{
        let searchedItems = this.searchPipe.transform(items);

        return searchedItems;
    }
}

答案 1 :(得分:1)

存储在模板中

<input hidden #searchItems="ngModel" [ngModel]="items | search" />
<!--assuming you want to reuse it inside ngFor-->
<li *ngFor="let item of searchItems.value">
 {{item.Name}}
</li>

答案 2 :(得分:0)

是的,我有类似的问题,但我能够通过创建NotificationPipe来解决它。然后,NotificationPipe使用观察者将数据推出。

以下是NotificationPipe`:

import { Pipe, PipeTransform } from '@angular/core'
import { MessageService } from '../../../services'
import { Issue, Action } from '../../../model/issue/issue'

@Pipe({ name: 'issueNotification' })
export class IssueNotificationPipe implements PipeTransform {

    constructor(private messageService: MessageService, ) {

    }
    transform(issues: Issue[]): Issue[] {
        this.messageService.sendMessage({ 'action': Action.BOOKMARKS_FILTERED, 'msg': issues })
        return issues
    }
}

MessageService只是一个抽象Observers

的服务包装器