2016-07-07 3 views
0

私はフォームと、フォームが作成するもののライブプレビューを持っています。Emberでの入力バインド

マイモデル経路において

//campaign.js 
export default Model.extend({ 
    title: attr('string'), 
    body: attr('string') 
}); 

// new.js 
export default Ember.Route.extend({ 
    model() { 
    return this.store.createRecord('campaign', { 
     title: null, 
     body: null 
    }) 
    } 
}); 

私の現在の実装では、入力

export default Ember.Component.extend({ 
    keyPress(event) { 
    // binding code 
    } 
}); 

テンプレート

{{#title-input}} 
{{/title-input}} 
<div id="title-preview"></div> 
にするためのコンポーネントを使用し

私の気持ちは、これを行うためのクリーナーやイディオムの方法があるということです。私は新しくemberになりましたので、ご協力いただきありがとうございます。

+1

あなたが '' this.store.createRecord(「キャンペーン」)を返す呼び出すことができ、プロパティはデフォルトで定義されません –

答えて

1

コンポーネントの使用は魅力的ですが、emberでのフォーム入力のキャプチャには必要ありません。何の価値があるのか​​。ルートは可能性があり、簡単なフォーム入力の場合:

setupController() { 
    Ember.set('controller','newCampaign', {}); //set empty newCampaign 
}, 

# Action hash would create the new record but only when you have some data. 
actions: { 
    createCampaign(newCampaign) { 
      let newRecord = this.store.createRecord('campaign', newCampaign); //create record 
      newRecord.save().then((/* response */) => { 
       this.transitionTo('campaigns'); //transition to different page. 
      }, (error) => { // Deal with an adapter error 
       //handle error 
       //rollback if necessary 
      }); 
    } 
} 

フォームまたはテンプレートは次のようになります。

{{input name="title" id="title" value=newCampaign.title type="text"}} 
{{input name="body" id="body" value=newCampaign.body type="text"}} 

だけの提案。

ジェフ

関連する問題