m.prop() 未按预期工作
m.prop() not working as expected
目前我正在使用 Mithril
和 CoffeeScript
创建一个简单的应用程序。
代码如下:
m = require 'mithril'
login = {}
login.controller = ->
@email = m.prop ''
@password = m.prop ''
@onSubmit = ->
return
return
login.view = (ctrl) ->
m 'center.login', [
m 'aside.logo', m "img[src='/img/logo.svg']"
m 'article.heading', m 'h3','Enter your email and password'
m "input.email[placeholder='email'][type='email']",
onchange: m.withAttr('value', ctrl.email)
value: ctrl.email()
m "input.password[placeholder='password'][type='password']"
onchange: m.withAttr('value', ctrl.password)
value: ctrl.password()
m "submit.button button-primary[href='/#/signup']",
onclick: ctrl.onSubmit()
value: 'Submit'
]
m.mount document.getElementById('content'), login
module.exports = view: login.view
当我 运行 应用程序时,出现以下错误:
Uncaught TypeError: ctrl.email is not a function
我认为错误的可能原因是 mount
函数没有正确配置模块。
为什么 m.prop() 在这里不起作用?
经过一番折腾,我终于得到了答案。
这个错误是一个相当愚蠢的错误。
因为我只导出了视图,所以require()
的模块无法知道controller的登录模块
我刚把最后一行代码改成了
module.exports = login
它解决了问题。
目前我正在使用 Mithril
和 CoffeeScript
创建一个简单的应用程序。
代码如下:
m = require 'mithril'
login = {}
login.controller = ->
@email = m.prop ''
@password = m.prop ''
@onSubmit = ->
return
return
login.view = (ctrl) ->
m 'center.login', [
m 'aside.logo', m "img[src='/img/logo.svg']"
m 'article.heading', m 'h3','Enter your email and password'
m "input.email[placeholder='email'][type='email']",
onchange: m.withAttr('value', ctrl.email)
value: ctrl.email()
m "input.password[placeholder='password'][type='password']"
onchange: m.withAttr('value', ctrl.password)
value: ctrl.password()
m "submit.button button-primary[href='/#/signup']",
onclick: ctrl.onSubmit()
value: 'Submit'
]
m.mount document.getElementById('content'), login
module.exports = view: login.view
当我 运行 应用程序时,出现以下错误:
Uncaught TypeError: ctrl.email is not a function
我认为错误的可能原因是 mount
函数没有正确配置模块。
为什么 m.prop() 在这里不起作用?
经过一番折腾,我终于得到了答案。
这个错误是一个相当愚蠢的错误。
因为我只导出了视图,所以require()
的模块无法知道controller的登录模块
我刚把最后一行代码改成了
module.exports = login
它解决了问题。