我正在尝试在另一个元素中创建Aurelia元素。我使用phosphor的停靠框架,当我动态创建面板时,我想添加一个使用Aurelia构建的组件。在Aurelia中创建元素
例如:我有一个非常简单的记录组件:
Logging.html
<template>
<h1>Logging....</h1>
</template>
Logging.ts:
export class Logging {
constructor() {
console.log('Logging constructor')
}
}
组件作品,当我“只是把预期它在页面上“。
现在一些它创建荧光粉的Widget方法里面我有这样的事情:
var widget = new Widget();
widget.title = "Got Logs?";
var contentElement = document.createElement('logging');
widget.node.appendChild(contentElement);
panel.insertBottom(widget);
此代码,给定一个荧光粉面板,创建一个Widget,创建它看起来像一个元素:<logging></logging>
并添加到到小部件的内部节点。由此产生的“DOM”是正确的,但aurelia不呈现元素。
我也曾尝试使用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
,真的不确定。
任何见解,将不胜感激。
这取决于在这创造了什么问题,因为据我的SPA架构的知识去,他们将在DOM的作为,如果你操纵此操作之外的DOM(您最有可能做的),那么框架将不知道您的更改。 –
确实,但我正在寻找一种方法来“强制汇编”我的观点。 –