我使用 jQuery 的方法调用服务器$.post并将 JSON 响应分配给名为 的变量result。PHP 函数中的响应是一个数组json_encode()。
到目前为止,我总是result直接使用 的属性,因为 JSON 会自动解析为对象。但现在,经过一些调试,我发现我的代码只有在我JSON.parse(result)第一次使用时才有效。
是什么导致了这种突然的变化?
解决方案:header("Content-Type: application/json")在回显 JSON 编码响应时添加服务器端。
我想在 X 秒后用 Alpine 隐藏一个元素。因此,我需要运行 setTimeout() 来更改元素的 x-show 绑定到的 x-data 变量。
我目前正在使用带有普通 JS 的脚本标记,但我似乎无法从中访问 x-data 变量。
举个例子:
<div x-data="showSomething = true">
<script>
setTimeout(() => {
this.showSomething = false;
}, 1500);
</script>
</div>
Run Code Online (Sandbox Code Playgroud)
无论我使用“this”,我都会收到此错误。或不:
未捕获的引用错误:showSomething 未定义
我怎样才能从普通的JS访问x-data变量,或者有没有办法在Alpine中解决这个问题?
编辑:我通过使用 x-on 侦听事件解决了这个问题(并引用该函数中没有 .this 的变量)