带有requirejs的onclick事件

时间:2018-06-06 18:50:28

标签: onclick requirejs axios

我使用requirejs并具有以下定义的模块:

loginView.js

define(['login'], (login) => {
  if (window.location.pathname === '/login') {
    const loginPage = `
      <form>
        <input type="text">
        <input type="password">
        <input type="button" onclick="${login.login()}" />
      </form>
    `
    document.getElementById('my-app').innerHTML = loginPage;;
  }
})

我的登录方法在一个单独的模块中定义:

loginHandler

define(['require', 'axios'], (require, axios) => {
  return {
    login: function() {
      // do stuff
    }
  }
})

问题是在页面加载时立即调用登录处理程序,因为我可以看到所有console.log调用,这不是我想要的。我认为它与login.login()有关,但将其设置为login.login会在页面中呈现实际方法。

如何在requirejs中使用onclick事件处理程序?

1 个答案:

答案 0 :(得分:0)

只需要使用登录功能交换require。

const login = () => {
  require(['require', 'axios'], (require, axios) => {
    // do stuff
  })
}