2017-02-12 4 views
1

ユーザーIDの配列の長さに基づいて好きな数を表示し、mongoDBに保存するユーザーIDを取得できないようなボタンを作成しています。ボタンをクリックすると、正しくインクリメントされますが、ユーザーのIDは配列にプッシュされません。オブジェクト内の "likes"配列にユーザーのIDを追加する方法はありますか?アレイ内に格納されているユーザーIDに基づいて、単純なボタンを作成するにはどうすればよいですか?

マイHTML

<button ng-model="object.likes" ng-click="addLike(object)"> 
    <i class="material-icons">thumb_up</i> 
    </br>{{object.likes.length}} 
</button> 

私のJSは

app.controller('likeCtrl', function($http, $location, etc) { 
    $scope.addLike = function(object) { 
    $http.put('/objects/' + object.id, { 
    likes: $scope.currentUser.id 
    }).success(function(object) { 
    $scope.object.likes.push(object); 
    }).error(function(err) { 
    return alert(err.message || "an error occurred"); 
}); 
} 
+0

ユーザーの認証はクライアント側ではなくサーバー側で行う必要があります。あなたはそのidを手作業で変更することができ、簡単な 'for'ループで全てのユーザから好きなものを偽造することができます。 – Jan

答えて

0

「likes:$ scope.currentUser.id」を「likes:{$ push:$ scope.currentUser.id}」に変更し、コードが機能しました。

これは私のAPIを生成するために使用しているdeploydの機能です。

0

$scope.object.likes.push(object);$scope.object.push(object); 正しい文はオブジェクト変数の構造に依存するべきです。

+0

そのステートメントから「likes」を削除すると機能が破られ、もはや増分されません。 "Likes"はオブジェクトの配列プロパティです。 user.idを配列に追加する別の方法はありますか? – ChristopherHall

関連する問題