Alpine.js中的嵌套不像Vue/React中那样有效。嵌套组件时,它不能访问父级的数据,只能访问自己的数据。
我正在尝试学习Alpine,并且正在测试嵌套的x数据。我在GitHub上遇到了一个嵌套x数据的问题。他们提供了一个我想自己尝试的解决方案。然而,当我尝试复制代码时,它没有打印任何内容。控制台中也没有错误。有人能告诉我我做错了什么吗?
<div x-data="{foo: 'bar'}">
<div x-data="{ }">
<span x-text="foo"></span>
</div>
</div>
我也尝试使用$el
属性,但它产生了相同的结果。
正如@LaundroMat所提到的,助手函数就是为了这些目的而构建的。
<div x-data="{foo: 'bar'}">
<div x-data="{localFoo: 'local bar'}">
<span x-text="$parent.foo"></span>
<p x-text="localFoo"></p>
</div>
</div>
参考代码笔
在alpinejs
的版本3中,此问题已得到解决。什么都不需要做。
您需要像一样将foo
属性添加到嵌套的x-data
中
<div x-data="{ }">
<div x-data="{ foo: 'bar' }">
<span x-text="foo"></span>
</div>
</div>
您可以使用Alpine Magic Helpers集合中的$component/$parent helper。