根据数组中的数字创建HTML

时间:2018-05-23 12:14:39

标签: knockout.js knockout-binding-handlers

第一次使用KO,为听起来像是一个愚蠢的问题道歉。

我有一个充满数据的数组。一个值是' stars',这是一个数字。在我的HTML中,我想基于该值创建HTML元素。例如,如果值为4,我想要4个元素。如果值为5,我想要5个元素,依此类推。我正确地绑定了其余的数据,这是我不确定的部分。

我希望重复的元素是'fas fa-star`

数据

scores: [
    {
        title: 'Score One',
        stars: 5,
    },
}

HTML

<ul class="scores" data-bind="foreach: scores">
    <li>
       <div class="title" data-bind="text: title"></div>
       <div class="stars">
           <i class="fas fa-star"></i>
       </div>
     </li>
 </ul>

1 个答案:

答案 0 :(得分:1)

如果您尝试将类的值设置为星号值(例如<div class="5">),则以下内容应该有效:

<ul class="scores" data-bind="foreach: scores">
    <li>
       <div class="title" data-bind="text: title"></div>
       <div data-bind="attr: { class: stars }">
           <i class="fas fa-star"></i>
       </div>
     </li>
 </ul>

修改 在重新阅读您的问题后,这将是您正在寻找的内容:

<ul class="scores" data-bind="foreach: scores">
    <li>
       <div class="title" data-bind="text: title"></div>
       <div data-bind="foreach: new Array(stars)"> // <-- replaced scores with stars
           <i class="fas fa-star"></i>
       </div>
     </li>
 </ul>