Javascript 车把添加类

Javascript 车把添加类,javascript,handlebars.js,Javascript,Handlebars.js,我有以下建议: "daysRange": { "status": "UNSPECIFIED/ALL/SPECIFIED", "available": [ { "id": "1", "name": "MONDAY" }, { "id": "2", "name": "TUESDAY" }, { "id": "3", "name"

我有以下建议:

 "daysRange": {
    "status": "UNSPECIFIED/ALL/SPECIFIED",
    "available": [
      {
        "id": "1",
        "name": "MONDAY"
      },
      {
        "id": "2",
        "name": "TUESDAY"
      },
      {
        "id": "3",
        "name": "WEDNESDAY"
      },
      {
        "id": "4",
        "name": "THURSDAY"
      },
      {
        "id": "5",
        "name": "FRIDAY"
      },
      {
        "id": "6",
        "name": "SATURDAY"
      },
      {
        "id": "7",
        "name": "SUNDAY"
      }
    ],
    "selected": [
      {
        "id": "2",
        "name": "TUESDAY"
      }
    ]
  }
我用这样的把手来生成李的:

     <ul class="available">
        {{#each daysRange.available}}
          <li data-id="{{this.id}}">{{this.name}}</li>
        {{/each}}
     </ul>  
    {{{#每天范围.available}
  • {{this.name}
  • {{/每个}}

问题:如何将所选课程添加到所选日期?我希望有人能对此有所了解。

您需要在数据进入模板之前对其进行处理。在
可用
列表中标记
所选
日期,以便在迭代期间进行测试

  • 将JSON解析为一个对象
  • 迭代
    可用
    列表,并将ID与
    所选
    中的元素进行比较
  • 差不多

    if (available[i].id === selected[j].id) 
        available[i].selected = true;`
    

  • 您也可以使用自定义帮助器执行此操作,但对我来说,这似乎比仅更正数据更麻烦:

    Handlebars.registerHelper('isSelected', function(selected, options) {
        var ret = "";      
        if (this.id === selected[0].id) {
            ret = "selected";
        }
        return options.fn(ret);
    });
    
    然后在模板中

     <ul class="available">
         {{#each daysRange.available}}
             <li data-id="{{this.id}}" class="{{#isSelected ../daysRange.selected}}{{this}}{{/isSelected}}">{{this.name}}</li>
         {{/each}}
     </ul> 
    
      {{{#每天范围.available}
    • {{{this.name}
    • {{/每个}}

    请您详细说明,可能至少是一些伪代码?谢谢,我将使用第一种方法。你确定帮手能行吗?如果(this.id==selected[0].id)我不确定你会有多少选择,所以我只抓到了第一个。虽然循环很简单;我相信你能解决的。