2016-07-04 4 views
1

私は別の要素の中にAurelia要素を作成しようとしています。私はphosphorからドッキングフレームワークを使用しています。パネルを動的に作成すると、Aureliaを使用してビルドしたコンポーネントを追加したいと考えています。例えばAureliaで要素を作成する

:私は非常に単純なロギング・コンポーネントを持っている:

Logging.html

<template> 
    <h1>Logging....</h1> 
</template> 

Logging.ts:

export class Logging { 
    constructor() { 
     console.log('Logging constructor') 
    } 
} 

予想通り、私は「ちょうど入れたときにコンポーネントが動作しますそれはページ上にある "。

今、私はこのような何か持っている蛍光体のウィジェット作成し、いくつかの方法の内側:、蛍光体パネルを与え、

var widget = new Widget(); 
widget.title = "Got Logs?"; 
var contentElement = document.createElement('logging'); 
widget.node.appendChild(contentElement); 
panel.insertBottom(widget); 

このコードをウィジェットを作成し、ように見える要素を作成:<logging></logging>をし、それを追加ウィジェットの内部ノードに渡します。結果として生じる「DOM」は正しいが、アウレリアは要素をレンダリングしない。

私もそうのようなTemplatingEngineを使用して試してみました:

import { inject, TemplatingEngine } from 'aurelia-framework'; 

@inject(TemplatingEngine) 
export class AureliaRoot { 
    constructor(templatingEngine) { } 

    attached() { 
     var contentElement = document.createElement("logging"), 
      el = document.getElementById("my-element"); 
     el.appendChild(contentElement); 
     templatingEngine.enhance({element: el, bindingContext: {}}); 
    } 
} 

しかし、実際に、私は右のそれを使用してい疑うと私はcompileを使用する必要があるかもしれないと思うが、これは、動作するようには思えません確かにそこにはありません。

洞察が得られるでしょう。

+0

であるとして、あなたが操作した場合に限りSPAフレームワークと私の知識が行くように、彼らは、DOMに作用しますので、それは、これが作成されたどの時点で依存このアクションの外のDOM(あなたがやっている可能性が高い)では、フレームワークはあなたの変更を知らないでしょう。 –

+0

確かに、私は私の見解の「編集を強制する」方法を探しています。 –

答えて

1

私は完全に答えることはできませんが、Aurelia ViewCompilerを使用して、Aureliaによって解析されるように生成されたHTMLの断片をコンパイルする必要があると思います。

詳細については、以下のリンクを見て試してみてください。How do you use ViewCompiler to manually compile part of the DOM?

+0

これは時代遅れだと思われますので、今度は 'TemplatingEngine'を使用してください。 –

+0

コメントありがとうございました。私はTemplatingEngineを見ていきます:) – qwerty2k

関連する問題