2017-11-08 8 views
3

私はまだ初心者ですが、Node ExpressからEmberにアプリケーションを変換しています。私はEmberに関連したいくつかの方法論について混乱しています。Ember.JS - Submitボタンはクエリを実行し、JSONオブジェクトをテンプレートに返します。クエリをサービス内、モデルとして、またはルート内で実行しますか?

現在のアプリケーションには、送信されたフォームがあり、入力に基づいてクエリが実行されます。結果は新しいテンプレートで表示されます。現在のアプリケーションのapp.jsではPOSTのswitch文があります:

app.post('/test', function(req, res){ 
switch(req.body.module) { 
    case "Option 1": 
    getOption1Results(req, res); 
    break; 
    case "Option2": 
    getOption2Results(req, res) 
    break; 
    case "Option 3": 
    getOptio3Results(req, res) 
    break; 
    case "Option 4": 
    getOption4Results(req, res) 
    break; 
    default: 
    console.log("didn't work") 

} 

エンバーで同じ結果を得るために、私は私がやってサービスを作成する必要があるかどうかわかりませんテンプレートに渡されたモデル内でクエリを実行することができます。または、フォームの送信ボタンからアクションを処理する必要がある場合

アドバイスをいただきありがとうございます。私はどうなるのか

答えて

0

は以下の通りです:

  • ユーザー
  • にフォームを表示するには、ルートを作成し、それが送信されたとき、アクションが呼び出されるように、フォーム上のアクションを行います。ここでは、その
  • は、フォーム上のアクションを呼び出すには
  • (あるいはあなたはまた、コントローラを使用することができますが、私は個人的にそれらを好きではありません)

をクエリを実行するためのサービスを作る望む場合は、フォームを検証することができます(両方を経由して、ボタンの押しを提出し、キーを押して入力します。)を提出、あなたのような何かを行うことができます:

<form {{action "onSubmitAction" on="submit"}}> 
    {{input type="text" value="foobar"}} 
    <button type="submit">Save</button> 
</form> 

をしてから、コントローラ(またはコンポーネント)で、あなたが定義し、次の

actions: { 
    onSubmitAction() { 
     // Do something 
    } 
} 
+0

それは賢明なようです、チップのおかげで! – Abuelo

関連する問題