1

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

アプリを実行すると、次のエラーが表示されます。

キャッチされていない TypeError: ctrl.email は関数ではありません

エラーの考えられる理由は、mount機能がモジュールで適切に構成されていないためだと考えています。

ここで m.prop() が機能しないのはなぜですか?

4

1 に答える 1

3

少しイライラした後、私はついに答えを得ました。

エラーはかなりばかげた失策によるものでした。

私はビューをエクスポートしただけなのでrequire()、ログインモジュールを実行したモジュールがコントローラーを知る方法はありませんでした。

最後の行コードを次のように変更しました

module.exports = login

そしてそれは問題を解決しました。

于 2015-08-06T20:05:33.263 に答える