我面临的问题有两个部分
我正在尝试实现这些原因,因为我正在使用SPA应用程序,该应用程序通过单击按钮添加了小部件。
我的index.html看起来像
<script>
function addTable() {
var iDiv = document.createElement('div');
iDiv.className = 'table';
document.body.appendChild(iDiv);
}
</script>
<body>
<div class="table"></div>
<div class="table"></div>
<button onclick="addTable()">Add Table</button>
<script src='bundle.js'></script>
</body>
我的main.js看起来像
import App from './App.svelte';
const app = new App({
target: document.querySelector('.table')
});
export default app;
答案 0 :(得分:0)
我能够解决上面报告的问题/问题
我通过遍历共享类的所有元素并为此实例化应用程序来实现这一目标,例如:
document.querySelectorAll(".svelte-container").forEach(element => {
if (!element.hasChildNodes()) {
new App({
target: element
});
}
});
var callback = function(mutationsList, observer) {
for (var mutation of mutationsList) {
if (mutation.type == "childList") {
if (mutation.target.querySelector(".svelte-table")) {
init();
}
}
}
};
我的index.html文件看起来像
<script>
function addButton() {
var elem1 = document.createElement("div");
elem1.className = "svelte-table";
elem2 = document.createElement("div");
elem2.className = "svelte-container";
elem1.appendChild(elem2);
document.body.appendChild(elem1);
}
</script>
</head>
<body>
<div></div>
<div class="svelte-table"><div class="svelte-container"></div></div>
<div class="svelte-table"><div class="svelte-container"></div></div>
<button onclick="addButton()">Click me</button>
</body>
<script src="bundle.js"></script>
我的main.js看起来像
import App from "./App.svelte";
function init() {
document.querySelectorAll(".svelte-container").forEach(element => {
if (!element.hasChildNodes()) {
new App({
target: element
});
}
});
}
init();
var targetNode = document.querySelector("body");
var config = { attributes: false, childList: true, subtree: true };
var callback = function(mutationsList, observer) {
for (var mutation of mutationsList) {
if (mutation.type == "childList") {
if (mutation.target.querySelector(".svelte-table")) {
init();
}
}
}
};
var observer = new MutationObserver(callback);
// Start observing the target node for configured mutations
observer.observe(targetNode, config);