在 alpine.js 中结合 x-show 和 x-text 切换

Posted

技术标签:

【中文标题】在 alpine.js 中结合 x-show 和 x-text 切换【英文标题】:Combine x-show & x-text toggle in alpine.js 【发布时间】:2021-01-05 07:32:50 【问题描述】:

我是 alpine.js 的新手,我需要切换元素的 innerText,有谁知道我可以结合显示元素和更改另一个元素的 innerText 吗?这是我的代码

<div x-data=" numOrder: false, delNumOrder: 'Remove your order number' ">
  <button x-on:click="numOrder = !numOrder">
  Insert your order number</button>
  <input x-show="numOrder" type="text" placeholder="Order Number">
</div>

我需要通过 delNumOrder 覆盖按钮文本,我已尝试使用 x-text

&lt;button x-on:click="numOrder = !numOrder" x-text="delNumOrder = !delNumOrder"&gt;

我可以使用类似的东西吗?

&lt;div x-data=" numOrder: false, delNumOrder = delNumOrder ? 'Insert your order number' : 'Remove your order number' "&gt;&lt;/div&gt;

【问题讨论】:

【参考方案1】:

您可以在x-text 中使用表达式,在本例中为文本的三元组:numOrder ? 'Remove your order number': 'Insert your order number'。您可能想要执行以下操作:

<div x-data=" numOrder: false ">
  <button
    x-on:click="numOrder = !numOrder"
    x-text="numOrder ? 'Remove your order number': 'Insert your order number'"
  ></button>
  <input x-show="numOrder" type="text" placeholder="Order Number">
</div>

【讨论】:

是的,正是 ;-)

以上是关于在 alpine.js 中结合 x-show 和 x-text 切换的主要内容,如果未能解决你的问题,请参考以下文章

[Mise] Toggle visibility and styles based on state with `x-show` and `x-bind` in Alpine JS

如何在 TailwindCSS 和 Alpine.js 中构建没有重复标签内容的响应式手风琴标签?

[译] Vue.js 和 Alpine.js 比较

在 Alpine.js 中将类绑定到 $el.value

在 Django 包中添加对 Alpine.js 的支持

带有 Tailwindcss 和 Alpine JS 的模态