0

我被要求使用 hyperHTML 创建一个下拉菜单进行练习。我是这个框架的新手,诚然没有在网上找到大量关于 hyperHTML 的材料,但我已经根据我所阅读的内容起草了一个基本模板。问题是当我尝试使用 JSFiddle 运行我的脚本时,它不会从整个 div 内容中返回任何内容。有人能解释为什么会这样吗?

// HTML

<div id="drop"></div>

// JS

const modes = [{label: 'Driving', value: 'driving'},{label: 'Walking', value: 'walking'},{label: 'Cycling', value: 'cycling'}];

const render = hyperHTML.bind(document.getElementById('drop'));

render`
  <h1>Hello, world</h1>
  <select>
    ${modes.map(obj => wire(obj)`<option value="${obj.value}">${obj.label}</option>`)};
  </select>
`;

注意:只有当我在选择参数中添加代码时,JSFiddle 才会拒绝呈现 div 内容。

4

1 回答 1

0

从我从您的代码中可以看出,您应该对 undefined 有一个错误wire,因为您没有在任何地方引用它。

这是我在此代码笔中使用的代码,一切正常。

const modes = [
  {label: 'Driving', value: 'driving'},
  {label: 'Walking', value: 'walking'},
  {label: 'Cycling', value: 'cycling'}
];

const {bind, wire} = hyperHTML;
const render = bind(document.getElementById('drop'));

render`
  <h1>Hello, world</h1>
  <select>
    ${modes.map(obj => wire(obj)`<option value=${obj.value}>${obj.label}</option>`)};
  </select>
`;
于 2019-09-26T12:19:34.683 回答