1

Ember でログインフォームを作成しています。

App.Router = Ember.Router.extend( // ここに記載);

次に、次のビューがあります

App.SignInView = Ember.View.extend
templateName: 'signin'

submitLogin: (event) ->
    login = @getPath('email.value')
    password = @getPath('password.value')
    console.log "Login: " + login + " Password: " + password
    // how do I redirect to a different state? I.e. "loggedIn"

submitLogin は、{{action "submitLogin"}} を使用してテンプレートからトリガーされます

このスニペットからわかるように、Web アプリの「プライベート」領域を表示する前に、ユーザー名とパスワードを確認したいと考えています。ここでのベストプラクティスは何ですか?

4

2 に答える 2

3

現在のルート内にハンドラーを実装submitLoginし、ハンドラーからルートを移行する必要があります。これは次のようになります。

submitLogin: (router, event) ->
  login = event.context.email // e.g
  password = event.context.password // e.g

  // do ajax call here...
    // and from reply handlers:
    router.transitionTo('loggedIn');

アクション ヘルパーで電子メールとパスワードのコンテナーを渡す必要があります。{{action submitLogin this}}

于 2012-08-04T19:47:34.637 に答える
1

このディスカッションEmber.jsは、ルーターでのビュートリガーイベントを取得して、次の設計に導きました。

  1. イベントを処理するビューを許可します
  2. smthを使用して、イベントをルーターに転送します。ビュー内でこのように

    App.router.send('signUp',context)
    

ここで重要なのは、ルーターの外部でルーターの状態を変更する必要はなく、ルーターの現在の状態で処理されるコンテキストを送信することです。

于 2012-08-09T06:10:12.720 に答える