各ドレスには ID が割り当てられます。ドレス ID は、$StateParams
関数内およびページ URL (例: #/dresses/21) 内で見つけることができます。
ユーザーが Heart (Like) または Broken Heart (Dislike) ボタンをクリックすると、ドレス ID が localstorage Heart/Broken Heart 配列内に配置されます。以下を参照してください。
また、いずれかのボタンがクリックされると、ボタン自体が無効になり、複数のドレス ID が押されるのを防ぎます! これは、opersit ボタンをクリックすることで元に戻すことができます。
問題!
ページを更新した後に同じドレス ID が送信されないようにする方法がわかりません - ドレス ID をプッシュする前に配列を検索しようとしましたが、うまくいきませんでした。また、ダブルクリックを防ぐことで二重のドレス ID が送信されるのを防ぐことができますが、ページを更新すると、ドレス ID が既に存在するにもかかわらず、ボタンがドレス ID をアレイにプッシュできます!
どんなガイダンスも大いに役立ちます!
ありがとうございました。
<ul class="railcontrols">
<li>
<md-button aria-label="" class="md-fab md-mini" ng-click="heart()" ng-dblclick="return false;" ng-disabled="heartflag">
<md-icon md-svg-src="svg/heart.svg"></md-icon>
</md-button>
</li>
<li>
<md-button aria-label="" class="md-fab md-mini" ng-click="brokenheart()" ng-dblclick="return false;" ng-disabled="brokenheartflag">
<md-icon md-svg-src="svg/brokenheart.svg"></md-icon>
</md-button>
</li>
</ul>
コントローラ:
fittingApp.controller('railsCtrl', ['$scope', '$localStorage', '$stateParams','$filter', function($scope, $localStorage, $stateParams, $filter) {
$scope.$storage = $localStorage;
var dressID = $stateParams.id;
if ($scope.$storage.userLoveList === undefined) {
var getUserID = $scope.$storage.profileData.userID;
$scope.$storage.userLoveList = ({
'userID': getUserID,
'heart': [],
'brokenheart': []
});
}
$scope.heartflag = false;
$scope.heart = function() {
$scope.heartflag = true;
$scope.brokenheartflag = false;
// Push Heart
$scope.$storage.userLoveList.heart.push({'dressID': dressID});
// Remove BrokenHeart
$scope.$storage.userLoveList.brokenheart = $filter('filter')($scope.$storage.userLoveList.brokenheart, {dressID: '!'+dressID});
};
$scope.brokenheartflag = false;
$scope.brokenheart = function() {
$scope.brokenheartflag = true;
$scope.heartflag = false;
// Push Broken Heart
$scope.$storage.userLoveList.brokenheart.push({'dressID': dressID});
// Remove Heart
$scope.$storage.userLoveList.heart = $filter('filter')($scope.$storage.userLoveList.heart, {dressID: '!'+dressID});
};
}]);
出力 {{$ストレージ | json}}
{
"userLoveList": {
"userID": "1",
"heart": [
{
"dressID": "21",
"dressID": "21", // Prevent Duplicates
"dressID": "19"
}
],
"brokenheart": [
{
"dressID": "10"
}
]
}
}