如何在cyclejs(motorcyclejs)中订阅没有DOM修改的事件?

时间:2016-02-04 19:11:52

标签: cyclejs

如果我不想在DOM中产生更改,我如何订阅来自某些DOM节点的事件? 我怎么能在cyclejs或motorcyclejs中得到这样的东西?

function main({DOM}) {
   DOM.select('button').events('click').forEach(e => console.log(e))
   return {}
}

run(main, {DOM: makeDOMDriver('#app')})

更新 DOM树在运行main函数之前已经退出:

<div id="app">
  <button>Click</button>
</div>

上面的示例不起作用,事件侦听器未附加到DOM节点。

1 个答案:

答案 0 :(得分:0)

这里应该展示如果您希望能够查看DOM点击次数,您的设置应该是什么样的:

const view = () => {
  return div('app',[
    button('Click')
  ]);
};

const intent = ({DOM}) => {
  const intent$ = DOM.select('button').events('click').map(e => console.log(e));
  return intent$;
};

const main = (sources) => {
  const intent$ = intent(sources);
  const view$ = Rx.Observable.just(view);
  return {
    DOM: view$

  };
};

run(main, {DOM: makeDOMDriver('#app')})