Angular 2 将管道值存储在变量中
Angular 2 store piped value in variable
我有一个名为 search 的管道,我想将返回的管道值存储在这样的变量中(在我的模板中)
let searchedItems = items | search
有什么想法吗?
假设您在一个组件中,您可以实例化一个新管道并应用其内联转换,如下所示:
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;
}
}
是的,我遇到了类似的问题,但我能够通过创建 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 只是一个抽象观察者的服务包装器
存储在模板中:
<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>
我有一个名为 search 的管道,我想将返回的管道值存储在这样的变量中(在我的模板中)
let searchedItems = items | search
有什么想法吗?
假设您在一个组件中,您可以实例化一个新管道并应用其内联转换,如下所示:
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;
}
}
是的,我遇到了类似的问题,但我能够通过创建 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 只是一个抽象观察者的服务包装器
存储在模板中:
<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>