在Ember中选择值和输入值的操作

时间:2014-12-22 16:24:15

标签: ember.js

我仍然不太清楚ii如何使用Ember中的Select选项值进行操作

这是我希望在输入值和选择选项值

之间实现的非常简单的moltiplication

我的代码如下:

我的输入数量:{{input valueBinding=quantity}}

我选择的选项值为{{view Ember.Select prompt="Tariffa" value=selectContentTariffa.value content=controller.selectContentTariffa optionValuePath="content.value" optionLabelPath="content.label"}}

我的输入总数,我想在数量和所选票价之间显示moltiplication结果:

  {{view "total"}}

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

这是我设置moltiplication的视图

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('selectContentTariffa.value')) * parseInt(this.get('quantity'));
   return isNaN(res)?"":res;
    }).property('selectContentTariffa.value', 'quantity')
});

我在设置值this.get('selectContentTariffa.value')) or this.get('quantity'))时做错了吗?

或者我正在犯其他错误?

我在这里复制了case

1 个答案:

答案 0 :(得分:2)

您似乎对如何以及在何处定义和访问属性感到困惑。 Here是您案例的工作更新。关键错误是你的选择值绑定。你有这个:

value=selectContentTariffa.value

我把它更改为:

value=controller.tariffa

值绑定告诉Ember存储所选值的位置。这会在控制器上设置tariffa。在total computed属性中,您可以像这样访问值:

this.get('controller.tariffa')

同样适用于quantity