2014-09-29 29 views
1

我正在尝试创建我的第一个Meteor应用程序,并且卡在什么应该是一个简单的过程。这里是我用来首先设置数据库的插入;

income.insert({income_acct_name: "Account 1", income_acct_budget: 0, income_acct_total: 0}); 
income.insert({income_acct_name: "Account 2", income_acct_budget: 0, income_acct_total: 0}); 
income.insert({income_acct_name: "Account 3", income_acct_budget: 0, income_acct_total: 0}); 

这里是模板;

<template name="income"> 
    {{#each accounts}} 
    <tr> 
     <td class="row1"><input type="text" value="{{income_acct_name}}"></td> 
     <td class="row2"><input type="text" value="{{income_acct_budget}}"></td> 
     <td class="row3">0%</td> 
     <td class="row4"><input type="text" value="0" id="income_amt_entered"></td> 
     <td class="row5">$ </td> 
     <td class="row6"> - </td> 
     <td class="row7"></td> 
    </tr> 
    {{/each}} 
</template> 

并且这是引发错误的助手;

Template.income.events ({ 
     'change td.row4': function(theEvent, theTemplate) { 
      var rowId = this._id; 
      Session.set('changedRow', rowId); 
      var changedRow = Session.get('changedRow'); 
      var amount = theTemplate.find('#income_amt_entered').value; 
      income.update (
       {"_id": changedRow}, 
       {$inc: {"income_acct_total": amount}} 
      ) 
      //console.log(amount); 
     } 
}); 

所以在我的形式,我在ROW4输入金额45.50喜欢更新“income_acct_total”,我得到这个错误。我使用的是与正在工作的Leader Board应用程序几乎相同的代码。输入的金额在控制台日志中正确显示。

回答

2

尝试从 '#income_amt_entered' 输入获取数:

var amount = parseFloat(theTemplate.find('#income_amt_entered').value); 
+0

也做到了。我希望将输入验证保存到应用程序中,以便在开始时保持简单。猜猜我不能那样做。非常感谢! – 2014-09-29 15:20:48

+0

$ inc期望数字不是字符串。这就是原因。 – 2014-09-29 15:26:41