2016-12-13 20 views
1

こんにちは、私は角度と$スコープとjsonの解析についていくつかの質問があります。角度jで私の値を増やす方法は?

私は、誰かが好きなようにクリックしたときに+1する機能を持っています。簡単なカウント。しかし、私が試してみると、この値を増やしてください:私のミスはどこですか?アンギュラはちょうど私がクリックしたときに、私は6彼らは再び61を示している値1例を連結私が得るデータなしでこれをしようとすると、私は、コントローラおよびサービス

PostService.getPost(postId).then(function(data) { 
    scope.post = data.post; 
}) 

から私の鍋を取得する方法611

<button class="place-button col-33" ng-if="usermeta.like_post" ng-click="like(post.id); post.likes = post.likes + 1"> 
    <span class="col-50"> 
      <i class="fa fa-beer"></i> 
    </span> 
    <span class="col-50"> 
     {{likes}} 
    </span> 
</button> 

にこれをクリックしてくださいJson APIからは動作しますが、それらは使えません!

+3

あなたを

- あなたは数として同類を返すようにサービスを変更することができますおそらく1を文字列に追加しているので、加算ではなく連結になっています。 '+ post.likes + 1'や' Number(post.likes)+ 1'や 'parseInt(post.likes)+ 1'などの文字列を数値に変換する... – RobG

+0

実際にintが必要です)ありがとう) –

答えて

3

$scope.likes= + $scope.likes+1;を使用してください。この結果は整数になります。

HTML

<div ng-app> 
    <div ng-controller="TodoCtrl"> 
    <button ng-click="incrementLikes()"> 
     Click 
    </button> 
    {{likes}} 
    </div> 
</div> 

JS

function TodoCtrl($scope) { 
    $scope.likes='0'; 
    $scope.incrementLikes=function(){ 
     $scope.likes=+$scope.likes+1; 
    } 
} 

function TodoCtrl($scope) { 
 
    $scope.likes='0'; 
 
    $scope.incrementLikes=function(){ 
 
    $scope.likes=+$scope.likes+1; 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.17/angular.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div ng-app> 
 
    <div ng-controller="TodoCtrl"> 
 
    <button ng-click="incrementLikes()"> 
 
    Click 
 
    </button> 
 
    {{likes}} 
 
    </div> 
 
</div>

+0

この作品は私のためにありがとう) –

+0

よろしくお願いします。 –

0

それはstringとして、あなたのモデル値post.likesを処理します。 parseInt(post.likes) + 1またはNumber(post.likes) + 1を使用してください。これらの関数はuiではアクセスできません。したがって、コントローラ内の関数を使用し、その関数をuiで呼び出します。 { likes: "6" }:あなたのサービスは、代わりに数の文字列として、このような何かをpost.likesを返すよう

$scope.incrementlike = function() { 
    $scope.post.likes = parseInt($scope.post.likes) + 1; 
} 
2

が見えます。そのため、文字列の連結は増分の代わりに行われます。

は、この問題を解決するには、次のフロントエンドで { likes: 6 }、または同類-convert

この方法:

PostService.getPost(postId) 
    .then(function(data){ 
     $scope.post = data.post; 
     $scope.post.likes = parseInt($scope.post.likes); 
}) 
関連する問題