2017-04-04 5 views
1

これは私の最初のEmber Appです。私は、各プレイヤーの名前に2つの入力フィールドがあるサインインページを作成しました。目標は、サブミットをクリックしてモデル(またはストア)にプッシュする際に、それぞれの名前をキャプチャして、別のテンプレートからそれらを取得できるようにすることです。ここでEmberjsでフォームデータを取得する方法

は、フォームテンプレートです:

{{!-- templates/signin.hbs --}} 
<div class="enterNames"> 
    <h2>Player Sign In</h2> 
    <form {{action save on="submit"}} > 
    <div class="p1input"> 
     {{input type="text" valueBinding="p1name" placeholder="Player 1" cols="60" rows="1"}} 
    </div> 
    <div class="p2input"> 
     {{input type="text" valueBinding="p2name" placeholder="Player 2" cols="60" rows="1"}} 
    </div> 
    <button>Submit</button> 
    </form> 
</div> 

が、これはルート内のモデルフックを使用して行うことが何かですか?もしそうなら、そのルートはどのように見えますか?

答えて

0

あなたがテキストフィールドに値を入力するたびだから価値がp2name財産で利用できるようになりますsignin.jsコントローラでp2nameプロパティを定義し、以下のように入力ヘルパーにバインドし、

{{input type="text" value={{p2name}} placeholder="Player 2" cols="60" rows="1"}} 

ことができます。あなたはあなたが{{signCont.p2name}}を使用してテンプレートのプロパティを取得し、JSファイルthis.get('signCont.p2name')にすることができ、コントローラファイルを対応するには、以下のを使って、別のテンプレートに

signCont: Ember.inject.controller('signin') 

をこのコントローラーを注入することができます。コントローラは他の場所にないコントローラにのみ注入できます。

EDIT:emberオブジェクトのプロパティを定義するのと同じようにプロパティを定義します。あなたのためにtwiddleを作成しました。 /game URLを使用してチェックしてください。

+0

ありがとうございました!コントローラーでp2nameプロパティーを定義する方法を詳しく教えてください。 –

+0

@BrittShroyerはサンプルを更新しました。ember-twiddleはチェックアウトします。私は 'p2name'プロパティをアプリケーションコントローラからゲームコントローラ – kumkanillam

+1

に表示しています。この例は本当に助けになりました。再度、感謝します。 –

関連する問題