0

2 つの値の乗算の結果が表示される入力フィールド タイプ番号があります。

私はhtmlで私のvalueBindingである合計関数を設定しました

ここで私の Ember.View.extend と合計計算

App.TotalView = Ember.View.extend({
 templateName: 'total',
 tagName: 'input',
 attributeBindings: ['total:value', 'placeholder', 'type'],
 placeholder: null,
 type: 'number',
 total: (function() {
    var res= parseInt(this.get('controller.newThread.selectContentTariffa')) * parseInt(this.get('controller.newThread.primary'));
    return isNaN(res)?"":res;
 }).property('controller.newThread.selectContentTariffa', 'controller.newThread.primary')
});

NewThread への呼び出しを定義しました

 newThread:function(){
    return {selectContentTariffa:null,primary:null,total:null,weight:null};
 }.property(),

これは、計算の値を選択したときの私の html です。valueBinding=newThread.selectContentTariffa, valueBinding=newThread.primary and valueBinding=newThread.total for the total result

    <tr>
      <td>{{view Ember.Select 
                 prompt="Tariffa" 
                 valueBinding=newThread.selectContentTariffa
                 content=selectContentTariffa
                 optionValuePath="content.value"
                 optionLabelPath="content.label"}}
      </td>
      <td>{{view Em.TextField
                 type="number"
                 valueBinding=newThread.primary
                 class="form-control"}}
      </td>
      <td>{{view "total" valueBinding=newThread.total}}</td>
      <td><button class="btn btn-success" {{action add item}}>Add</button></td>
    </tr>

  <script type="text/x-handlebars" data-template-name="total">
    {{view.total valueBinding=newThread.total}}
  </script>

これは私のhtmlで、追加した後に値が表示されます

{{#each item in model}}        
    <tr>
          <td>{{item.selectContentTariffa}}</td>
          <td>{{item.primary}}</td>
          <td>{{item.total}}</td>
        </tr>
{{/each}}

何が欠けているのかわかりません。ここで問題を再現しました: http://emberjs.jsbin.com/qakado/13/edit?html下の最後の列の結果の値を見ることができますバウンド

4

1 に答える 1

1

totalプロパティに割り当てられたオブジェクトのプロパティnewThreadは、結果で設定されることはありません。したがって、アプローチは、合計プロパティを計算されたプロパティにし、そこで乗算を実行することです。次に、そのプロパティをビュー内に表示します。

http://emberjs.jsbin.com/vivohiyefu/1/edit?html,js

于 2014-10-24T16:04:01.047 に答える