【问题标题】:How to make a custom class iterable in Pug?如何在 Pug 中使自定义类可迭代?
【发布时间】:2021-12-26 18:06:07
【问题描述】:

所以,我有这个自定义分页器类,并在其中实现了方法 [Symbol.iterator] 和 forEach:

class MyPaginator<T>{

  items: T[]

  //...

  [Symbol.iterator](){
    return this.items[Symbol.iterator]();
  };

  forEach(callback: (item: T, index: number) => void): void {
    return this.items.forEach(callback);
  }

  //...
}

有了这个,我可以用“普通”代码迭代它

for(let element of paginator) {}
// or
paginator.forEach(elements => {})

但显然 pug 没有使用其中的任何一个,因为它是 each 迭代器,因为这不起作用:

ul
  each element in paginator
    li
      // something

虽然这可行:

ul
  each element in paginator.items
    li
      // something

有什么我可以在我的类中实现的,以便我能够在 Pug 中迭代它而不需要 .items

【问题讨论】:

    标签: javascript typescript pug


    【解决方案1】:

    如果您使用的是pug &gt;= 3,则可以将each-ofSymbol.iterator 一起使用。

    ul
      each item of paginator
        li= item
    

    【讨论】:

      猜你喜欢
      • 2013-12-10
      • 1970-01-01
      • 2014-03-07
      • 1970-01-01
      • 2016-06-19
      • 2017-04-13
      • 1970-01-01
      • 2020-05-18
      • 1970-01-01
      相关资源
      最近更新 更多