Как использовать трубу в ts не HTML
Я добавляю текст в элемент html из ts
как это
this.legend.append('text')
.attr('x', legendRectSize + legendSpacing)
.attr('y', legendRectSize - legendSpacing)
.text(function(d) { return d; });
это создаст html как
<text>Data will come here</text>
Я хочу использовать pipe для преобразования этих данных в какую-то форму, как я могу это сделать из ts-кода?
и поскольку я создаю этот HTML динамически, я не могу использовать такой канал
<text>{{Data will come here | pipename}} </text>
Я ищу что-то вроде
this.legend.append('text')
.attr('x', legendRectSize + legendSpacing)
.attr('y', legendRectSize - legendSpacing)
.text(function(d) { return d; }).applypipe('pipename');
Ответы
Ответ 1
Сначала импортируйте свою pipeу в компонент. А затем используйте свою pipeу в вашем компоненте. Вот так..
pipe.ts
/**
* filter checkbox list
*/
@Pipe({ name: 'filter', pure: true })
export class FilterPipe{
transform(items: any[], args: any): any {
let filter = args.toString();
if(filter !== undefined && filter.length !== null){
if(filter.length === 0 || items.length ===0){
return items;
}else{
return filter ? items.filter(item=> item.title.toLocaleLowerCase().indexOf(filter) != -1) : items;
}
}
}
}
component.ts (используйте в своем машинописном коде)
const filterPipe = new FilterPipe();
const fiteredArr = filterPipe.transform(chkArray,txtSearch);
xyz.html (используйте в своем html файле)
<ul>
<li *ngFor="todo for todos | filter:'txtsearch'"> {{todo.name}} </li>
</ul>
Ответ 2
Если Pipename - это ваш собственный канал, то если вы хотите использовать его в своем ts файле, вы можете использовать ниже код
import {Pipename} from './pipename';
Pipename.prototype.transform(arguments);//this is how u can use your custom pipe
Ответ 3
импортировать канал в компоненте
import { PipeName } from './pipename'
включить его в комплект
@Component({
selector: 'pipe-using-component',
templateUrl: './pipe-using-component.html',
providers: [
PipeName
],
})
вставьте его в конструктор
export class PipeUsingComponent {
constructor(private pipeName: PipeName)
}
var requiredResult = this.pipeName.transform(passvalue);
}
Ответ 4
В вашем .ts
import {YourPipe} from '/pipePath';
let value = new YourPipe().transform(param);