2015-07-11 69 views
0

我正在編寫一個簡單的程序來教授基本的輸入,表單和模板以及使用流星的會話。Meteor.js加運算符

if (Meteor.isClient) { 

Session.set('value',0); 


Template.hello.helpers({ 

result: function(){ 

    return(Session.get('value')); 
} 
}); 


Template.hello.events({ 

'submit form': function(event) { 

    event.preventDefault(); 

    var s1=event.target.num1.value; 
    var s2=event.target.num2.value; 

    var s = s1 - s2; 

Session.set('value',s); 

} 

}); }

問題是,當運算符改爲+它似乎連接兩個數字。其他基本操作員工作正常。這是一個錯誤?這是我可以教給我的學生的最簡單的例子,我陷入困境。

我使用的是Mac 10.6.8和流星1.1.0.2

+0

可能的重複[爲什麼JavaScript處理字符串和數字之間的加號和減號運算符不同?](http://stackoverflow.com/questions/24383788/why-does-javascript-handle-the-plus-and- minus-operators-between-strings-and-numb)//絕對不是流星專用的btw。 – CBroe

回答

0

很難說沒有看到的jsfiddle,但我敢打賭,你的問題是,值中的一個或兩個被傳遞中作爲一個字符串。

加號是JS的串聯運算符,如果它們都不是數字而一個是字符串,它將執行從數字到字符串的類型強制轉換。 - 運算符將以另一種方式執行它,並將字符串轉換爲數字。

檢查傳入的數據類型並確保它們都是數字。如果不是,請使用parseInt將它們變成數字。

0

string + string = string。

試試這個:

var s1=+event.target.num1.value; 
    var s2=+event.target.num2.value; 

總是把你的串號,當你把他們從DOM。