Tsからhtml要素にテキストを追加します
このような
this.legend.append('text')
.attr('x', legendRectSize + legendSpacing)
.attr('y', legendRectSize - legendSpacing)
.text(function(d) { return d; });
これは次のようなhtmlを作成します
<text>Data will come here</text>
パイプを使用してこのデータを何らかの形に変換したいのですが、どうすれば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');
最初にコンポーネントにパイプをインポートします。そして、コンポーネントでパイプを使用します。このような..
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(TypeScriptコードで使用)
filterPipe = new FilterPipe();
fiteredArr = filterPipe.transform(chkArray,txtSearch);
xyz.html(htmlファイルで使用)
<ul>
<li *ngFor="todo for todos | filter:'txtsearch'"> {{todo.name}} </li>
</ul>
Pipenameがカスタムパイプの場合、tsファイルで同じ名前を使用する場合は、以下のコードを使用できます
import {Pipename} from './pipename';
Pipename.prototype.transform(arguments);//this is how u can use your custom pipe
コンポーネントにパイプをインポートする
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);
}
あなたの.ts
import {YourPipe} from '/pipePath';
let value = new YourPipe().transform(param);