Toplama dize angularjs olarak yorumlanır

oy
1

Aşağıdaki kodda iki sayıyı ekleyerek sorun yaşıyorum:

js:

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.size = {

total_size_1 : {s_size : 1st size, a : 10, b : 7}, 
total_size_2 : {s_size : 2nd size, a : 12, b : 4},
total_size_3 : {s_size : 3rd size, a : 11, b : 1}
}
});

işaretleme:

<script src=https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js> </script>
<script src=sum_test.js></script>

<div ng-app=myApp ng-controller=myCtrl>
<p> Select size: <select ng-model=selectedSize ng-options=y.s_size for (x, y) in size></select>
</p>

<span>Selected size: {{selectedSize.s_size}}</span><br />
<span>Factor: {{selectedSize.a + selectedSize.b}}</span>

Sorun {{selectedSize.a + selectedSize.b}} şeklindedir. Bunun yerine kapsamından a + b ekleyerek, tıpkı bir dize 'ab' sanki birlikte iki sayı ekler. 1 boyutu olarak, yani 17 doğuracak 10 + 7, olacaktır ama bunun yerine 107. Bunu çözmek nasıl gösterir?

Oluştur 20/10/2018 saat 14:17
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
1

Sorununuz Nesnenizin içindedir. Birlikte eklemeye çalıştığınız "sayılar" veri türü aslında dizelerdir.

a = "10" //represented as a string.
b = a + a //b would equal "1010"
c = 10 //represented as an int/numerical data type
d = c + c //d would equal 20

Basitçe tırnak kaldırmak ve kod çalışması gerekir. böylece gibi:

total_size_1 : {s_size : "1st size", a : 10, b : 7}
Cevap 21/10/2018 saat 00:12
kaynak kullanıcı

oy
-1

sayılar olarak çözümler.

tamsayı olarak Ör:

<span>Factor: {{parseInt(selectedSize.a) + parseInt(selectedSize.b)}}</span>
Cevap 20/10/2018 saat 14:23
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more