Постановка задачи
Пользовательская труба применяется к обоим угловым выражениям {{fruits}}
& {{fruits | sortStringPipe:'asc' }}
Но она должна применяться только ко второму, где я передаю символ pipe
в выражении.
Кодовая база
mypipecomponent.component.ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'cts-mypipecomponent',
templateUrl: './mypipecomponent.component.html',
styleUrls: ['./mypipecomponent.component.css']
})
export class MypipecomponentComponent implements OnInit {
fruits = ['mango','apple','banana','papaya','kiwi']
constructor() { }
ngOnInit() {
}
}
Пользовательский канал (sort-string-pipe.pipe.ts)
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'sortStringPipe'
})
export class SortStringPipePipe implements PipeTransform {
transform(value: any, args?: any): any {
if(args === 'asc'){
return value.sort()
}
if(args === 'dsc'){
return value.sort().reverse()
}
return value.sort();
}
}
mypipecomponent.component.html
Unsorted Fruits: {{fruits}}
Sorted Fruits: {{fruits | sortStringPipe:'asc' }}
выход
Unsorted Fruits: apple,banana,kiwi,mango,papaya Sorted Fruits: apple,banana,kiwi,mango,papaya
В выводе мы видим, что он сортирует оба выражения, но он должен сортировать только {{fruits | sortStringPipe:'asc' }}
.
Примечание: Если я передаю какой-либо элемент HTML, например <hr>
, <br>
, между обоими выражениями, он работает, но я не хочу использовать эти элементы между выражениями.