Мне нужно динамически загружать элементы SVG.
Элементы очень просты.Шаблон:
<svg:rect [attr.x]="x" [attr.y]="y" width="10" height="10" />
Класс:
export class DraggableSvgItemComponent implements OnInit {
x: number = 0;
y: number = 0;
constructor() { }
ngOnInit() {
}
}
Вот так выглядит шаблон компонента контейнера:
<svg attr.height.px="{{height}}" attr.width.px="{{width}}">
<svg:g app-draggable-svg-item *ngFor="let d of draggables" />
</svg>
И вот как я генерирую форму элементовкомпонент контейнера:
// commands <- load fun stuff with x and y coordinates
var toSet = new Array<DraggableSvgItemComponent>();
commands.forEach((value) => {
if (value instanceof ZPL2.GraphicShapeBase) {
var toAdd = new DraggableSvgItemComponent();
toAdd.x = value.x;
toAdd.y = value.y;
console.log(toAdd);
toSet.push(toAdd);
}
});
this.draggables = toSet;
Журнал консоли показывает, что x и y имеют ненулевые значения: DraggableSvgItemComponent {x: 100, y: 50}
, но выводом является svg с квадратом в верхнем левом углу и значениями x иy равны 0.
Если я помещаю <rect>
непосредственно в холст, не используя другой компонент, он работает, но он мне нужен, потому что мне приходится иметь дело с разными вещами SVG.
Что такоеЯ делаю неправильно с привязками значений?