DOMにオブジェクトを動的に追加しようとしていますが、DOMに表示するクラスプロパティに変更を加えることができません。私はDOMオブジェクトのクラス名を変更することはできません。Angular2 Typescript2:DOMオブジェクトに反映されていないClassプロパティへの変更
「クリックした」メソッドが呼び出されたが、style.topとstyle.leftは変更されないことをコンソールに記録します。また、クラス属性もどちらもしません。
<div ng-reflect-class-name="marker" class="marker">...</div>
挿入をやっているコード:
page.ts
import { Component, ViewContainerRef, ComponentFactoryResolver } from '@angular/core';
import { Marker } from './marker';
@Component({
selector: 'page',
templateUrl: 'page.html'
})
export class MyPage {
constructor(private vcRef: ViewContainerRef, private resolver: ComponentFactoryResolver) {
}
clicked(e: MouseEvent) {
const factory = this.resolver.resolveComponentFactory(Marker);
let component = this.vcRef.createComponent(factory, 1, this.vcRef.injector);
component.instance.place(0,0, 50, 0, 150);
}
}
ここで私が動的に追加しようとしているオブジェクトです:
は、私はちょうどこれを見ますマーカー.ts
import { Component } from '@angular/core';
@Component({
selector: '.markers',
templateUrl: 'marker.html'
})
export class Marker {
protected left: number;
protected bottom: number;
protected class: string;
protected form: any;
constructor() {
this.class = "marker";
this.form = {
x: 0,
y: 0,
title: ''
}
}
place(percentX: number, percentY: number, x: number, y: number, width: number) {
console.log("placing");
this.form.x = percentX;
this.form.y = percentY;
this.left = x;
this.bottom = y;
if (x < width/2) {
this.class = "marker right";
} else {
this.class = "marker left";
}
}
}
marker.html
<div [class]="class" [style.left]="left" [style.bottom]="bottom">
<ion-input class="input-title" type="text" placeholder="Title" [(ngModel)]="form.title"></ion-input>
</div>
このAngular2のN00Bのための任意のヒント?