1

スーパーコーディングn00bはこちら。emberjs で栄養計算機を作成しようとしています。以下のようなユーザー入力フォームがある場合、計算関数をどこに記述し、どのように答えを表示しますか?

    <form>
      <div class="form-group">
        <label for="weight">Weight</label>
        {{input type="text" id="weight" class="form-control" value=weight}}
      </div>
      <div class="form-group">
        <label for="runduration">How long will you be running? (hours)</label>
        {{input type="text" id="runduration" class="form-control" value=runduration}}
      </div>
      <div class="form-group">
        <label for="cycleduration">How long will you be cycling?</label>
        {{input type="text" id="cycleduration" class="form-control" value=cycleduration}}
      </div>
      <button {{action calculate}}>Calculate nutrition</button>
    </form>

コントローラーに関数を記述しますか?

私のルーターには次のものがありますが、入力フォームと表示された計算を同じテンプレート Nutritioncalc.hbs に保持したいだけです

  this.route('nutritioncalc');
  this.resource('new-nutritioncalc', { path: '/nutritioncalc/new' });  

ありがとう。

4

1 に答える 1

0

Ember はvalue=variable入力フィールド内のデータでそれらを埋めます。でアクセスできますNewNutritioncalcController

App.NewNutritioncalcController = Ember.ObjectController.extend({
  actions: {
    calculate: function(){
      var weight = this.get('weight'),
          runduration = this.get('runduration'),
          cycleduration = this.get('cycleduration');
    }
  }
});

アクション バブリング

アクションは、関連付けられたコントローラーからルートのチェーンに伝播します。

ドキュメンテーション

これがアクション バブリングのドキュメントです。

コントローラーがアクション オブジェクト内のアクションと同じ名前のメソッドを実装していない場合、アクションはルーターに送信され、そこで現在アクティブなリーフ ルートにアクションを処理する機会が与えられます。

双方向バインディング

これは、 Ember での双方向データ バインディングに関するブログ投稿です。

テンプレート (テキスト ボックスに入力するなど) または JavaScript (ボタンをクリックするなど) のどちらでプロパティを変更しても、どちらの場合も、プロパティまたは変数が使用されているすべての場所に変更が反映されます。 .

于 2014-06-05T22:10:00.700 に答える