【发布时间】:2017-07-05 19:11:55
【问题描述】:
是否可以在 DOM 加载后添加自定义组件?
例如点击按钮时
模板
<template>
<button click.delegate="add_component()"> Press me </button>
</template>
视图模型
@inject(Element)
export class App {
constructor(element) {
this.element = element;
}
function add_component() {
var component = document.createElement('<customElement></customElement>');
this.element.appendChild(component);
}
}
【问题讨论】:
-
答案是肯定的还是否定的,这取决于你想要做什么。不可能按照您显示的方式做您正在做的事情,因为 Aurelia 不会像那样寻找添加到 DOM 中的东西。但是,如果您使用中继器和
compose元素,您可以做一些类似于您想做的事情。您可能想重新考虑您正在做什么,看看是否有更好的方法在 MVVM 模式的范围内完成它。 -
添加到 Ashley 的评论中,您可以按照在 aurelia-dialog 中完成的方式动态渲染组件,或者像 aurelia-notify 这样的 toast 插件。
标签: javascript aurelia