aureliaでプログラムでコンポーネントを作成し、ビューのそのタイプのタグに何らかの方法でバインドすることは可能ですか?たとえば、単純なツリービューのようなものは、下記のHTMLテンプレートのコメントを参照してください。Aureliaでコンポーネントをプログラムでインスタンス化する
ツリーview.ts
import {TreeNode} from "./tree-node";
export class TreeView<T> {
private _rootNodes: TreeNode<T>[] = [];
get rootNodes(): TreeNode<T>[] {
return this._rootNodes;
}
public addRootNode(node: TreeNode<T>) {
this._rootNodes.push(node);
}
}
ツリーnode.ts
export class TreeNode<T> {
private _value: T;
private _name: string;
private _children: TreeNode<T>[] = [];
get value(): T {
return this._value;
}
get name(): string {
return this._name;
}
get children(): TreeNode<T>[] {
return this._children;
}
public addChild(child: TreeNode<T>): void {
this._children.push(child);
}
constructor(name: string, value: T) {
this._name = name;
this._value = value;
}
}
ツリーview.html
<template>
<!-- Something like this is the intend -->
<tree-node repeat.for="node of rootNodes"></tree-node>
</template>
ツリーnode.html
<template>
<div>${name}</div>
<div class='childNodes'>
<!-- Something like this is the intend -->
<tree-node repeat.for="node of children"></tree-node>
</div>
</template>
あなたはそれをDOMに追加して 'enhanced'を呼び出すことができますが、一般的にDOMに物を追加しようとしている場合は、どこに行くのか知っているので、' compose'カスタム要素 –