<div *ngFor="let column of tableColumnsConfig | toIterable | trueOnlyBy : 'value'">
{{column.name}}
</div>
@Pipe({
name: 'toIterable'
})
export class ToIterablePipe implements PipeTransform {
transform(dict: Object) {
return Object.keys(dict || {}).map(key => dict[key]);
}
}
@Pipe({
name: 'trueOnlyBy'
})
export class TrueOnlyByPipe implements PipeTransform {
transform(arr: any[], propName: string): object {
return arr.filter(item => !!item[propName]);
}
}
{
"/api/*": {
"target": {
"host": "moi-host-api.ru",
"protocol": "https:",
"port": 443
},
"secure": true,
"changeOrigin": true,
"logLevel": "debug"
}
constructor(private formBuilder: FormBuilder) {}
ngOnInit() {
this.myform = this.formBuilder.group({
name: new FormControl('', [.....
....
}, {
validator: myComponent.myGroupValidator
})
}
static myGroupValidator(control: AbstractControl): { [key: string]: boolean } | null {
// тут в дебаге проверьте, что заходит сюда
....
}
<test-component *ifViewportSize="'small'" [value]="1"></test-component>
<test-component *ifViewportSize="'medium'" [value]="2"></test-component>
<test-component *ifViewportSize="'large'" [value]="3"></test-component>
var template = $templateCache.get('nameOfTemplate.html');
var scope = {
var1: 'Переменная в шаблон',
someEvent: function() {
alert('Событие из шаблона')
}
}
var compiledContent = $compile(template)(scope)
element.append(compiledContent)
buildMarkers(cars): void {
return Observable.create(observer => {
for (let i in cars) {
let lat: number = cars[i].coordinates.lat;
let lon: number = cars[i].coordinates.lon;
let pin = cars[i].pin;
let singleMarker = new Marker([lat, lon], {
icon: new DivIcon({
className: 'my-div-icon',
html: this.getHtmlMarker(cars, pin)
})
});
this.layers.push(singleMarker);
};
observer.next();
observer.complete()
});
};
public mapReady(map) {
this.map = map;
let that = this;
that.buildMarkers(this.cars).subscribe(() => {
// тут выполните код, который гарантированно выполнится после buildMarkers
});
};