我有一个 Aurelia 应用程序,用户可以在其中单击一个按钮并创建一个新选项卡。在用户单击按钮之前,该选项卡及其内容(自定义元素)在页面上不存在。我在我的视图模型中在运行时(通过 Javascript)为内容生成 HTML。
我不断看到提到使用模板引擎compose
或enhance
功能,但它们都不适合我。我不知道如何使用该<compose>
元素(在我的 HTML 中),因为我是根据用户单击按钮来创建元素的。
我的想法是该按钮具有click.delegate
最终执行类似功能的功能
const customElement = document.createElement('custom-element');
parentElement.appendChild(customElement);
const view = this.templatingEngine.enhance({
element : customElement,
container : this.container, // injected
resources : this.viewResources, // injected
bindingContext: {
attrOne: this.foo,
attrTwo: this.bar,
}
});
view.attached();
但这所做的只是创建一个 HTML 元素<custom-element></custom-element>
,而没有实际绑定任何属性。
如何创建类似于<custom-element attr-one.bind="foo" attr-two.bind="bar"></custom-element>
但通过 Javascript 的自定义元素?