每件衣服都分配了一个 ID,可以在$StateParams
函数和页面 URL 中找到衣服 ID - 例如 #/dresses/21。
当用户点击 Heart (Like) 或 Broken Heart (Dislike) 按钮时,礼服 ID 将放置在 localstorage Heart/Broken Heart 数组中 - 见下文。
此外,当单击任一按钮时,该按钮会自行禁用,从而防止推送多个礼服 ID!这可以通过单击操作按钮来恢复。
问题!
我不知道如何在刷新页面后阻止提交相同的礼服 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"
}
]
}
}