我是第一次研究 AlpineJS,我正在尝试将一些数据加载到
x-data
属性中。
我有类似的东西
<body x-data="data">
...
在我的 HTML 中。里面
data
我存储了我以后使用的所有数据和功能(这是一个非常简单的SPA)
document.addEventListener('alpine:init', () => {
Alpine.data('data', () => ({
foo: 1,
bar: 2,
...
}));
}
一切工作正常,直到所有变量同步,但现在我需要将从数据库异步获取的一些数据分配给一个变量。
我尝试过一些简单的事情,比如
document.addEventListener('alpine:init', () => {
Alpine.data('data', async () => ({
foo: 1,
bar: await getData(),
...
}));
}
不幸的是,这不起作用。对于 Uncaught ReferenceError: VARIABLE_NAME is not defined
内的每个变量,我都会得到一个
data
。如何解决这个问题?有处理这种情况的标准方法吗?
data() 函数中删除 async:
document.addEventListener('alpine:init', () => {
Alpine.data("data", () => ({
foo: 1,
bar: null,
init: async function () {
this.bar = await this.getData();
},
getData: async function () {
return Promise.resolve("abc");
}
}));
});