码迷,mamicode.com
首页 > Web开发 > 详细

[Mise] Iterate through data with the `x-for` attribute in Alpine JS

时间:2020-05-14 19:33:21      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:init   about   think   name   code   apply   ===   this   app   

In this lesson, we move the component definition to a function, defined in a script tag in the HTML document.

We then iterate through an Array of Objects with the x-for directive in Alpine JS. We use a <template> tag to wrap the HTML element we want to repeat for each item, and put the x-for directive on that template tag.

We also define a "computed" property by adding a method on our function, which checks if a given ID matched the currently active tab id. This computed property allows us to determine wether or not to apply the "active" classname to our tab buttons.

 

<div x-data="tabs()">
  <div>

    <template x-for="tab in tabs" :key="tab.id">
      <button @click="activeTab = tab.id" x-text="tab.title" :class="{‘active‘: getActiveStatus(tab.id)}"></button>
    </template>
  </div>
  <div>
    <template x-for="tab in tabs" :key="tab.id">
      <div x-show="getActiveStatus(tab.id)">
        <p x-text="tab.text"></p>
      </div>
    </template>
  </div>
</div>

<script>
  function tabs() {
    return {
      activeTab: 0,
      tabs: [
        {id: 0, title: "Tab 1", text: "I am the content of tab number one, and I think I just won! ??"},
        {id: 1, title: "Tab 2", text: "Heya! I root for number two, and so should you! ??"},
        {id: 2, title: "Tab 3", text: "Haha nice one, but I am number three, and now it‘s all about me! ??"},
      ],
      getActiveStatus(id) { return this.activeTab === id }
    }
  }
</script>

 

[Mise] Iterate through data with the `x-for` attribute in Alpine JS

标签:init   about   think   name   code   apply   ===   this   app   

原文地址:https://www.cnblogs.com/Answer1215/p/12890640.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!