【问题标题】:Display a div for a particular element in AngularJS's ng-repeat loop在 AngularJS 的 ng-repeat 循环中显示特定元素的 div
【发布时间】:2014-04-22 06:18:04
【问题描述】:

我有下面的 HTML 代码,其中包含 AngularJS 的 ng-repeat 的 div。 我想要做的是仅针对单击 div[id="arrow_up"] 的特定元素显示显示“您已经投票支持此评论”的 div。此代码显示 div“你有.. .." 用于单击后循环的所有元素。 还要求此 div 应在 5 秒间隔后消失。

    <div  class="col-xs-4"  ng-repeat="review in date_reviews track by $index">
         <div id="arrow_up" class="arrow-up" ng-mouseover="message_up = true" ng-mouseleave="message_up= false" ng-click="saveVote(review[0].review_id,1,$index);" ng-class="{vote_capture_top:voted_up && $index == selectedIndex}"></div>
         <div ng-show = "voted_msg_up" ng-class="{message:$index == selectedIndex}"> You have already voted for this review</div>
         <div class="message" ng-show="message_up">This review is helpful.</div>
    </div>

下面是控制器的 saveVote 函数。

$scope.saveVote = function(review_id,type,index){
            console.log(review_id)
            email = $cookies.email;
            console.log(type)
            console.log(index)
            $http({
                method: 'POST',
                url: '/saveVote',
                data : {
                        "review_id" : review_id,
                        "vote_type" : type,
                        "emailId" : $cookies.email,
                },
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded'
                }
                // set the headers so angular passing info as form data (not request payload)
                }).success(function(data, status, headers, config) {
                   $scope.selectedIndex = index;    
                   if(data == "already_voted"){
                    $scope.voted_up = false;
                    $scope.voted_down = false;
                    $scope.isDisabled = true;
                    if(type == 1) {

                        $scope.voted_msg_up = true;
                        $scope.voted_msg_down = false;
                         console.log($scope.voted_msg_up)
                    console.log($scope.voted_msg_down)
                    }else {
                        $scope.voted_msg_up = false;
                        $scope.voted_msg_down = true;
                    }

                   } else if(data == "success") {

                    if(type == 1) {
                        $scope.voted_up= true    
                    }else {
                        $scope.voted_down = true    
                    }
                   }
                }).error(function(data, status, headers, config) {
                    $scope.status = status;
                    $window.alert("error")
                }); 
        }

提前致谢。

【问题讨论】:

    标签: html css angularjs


    【解决方案1】:

    将 div 标签更改为以下内容,它使该特定元素的 div 出现。

     <div ng-show = "voted_msg_up && $index == selectedIndex"> You have already voted for this  review</div>
    

    但如何在 5 秒后删除 div 仍然未知。

    【讨论】:

      猜你喜欢
      • 2019-05-09
      • 2012-07-12
      • 1970-01-01
      • 2013-01-02
      • 2017-12-09
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      相关资源
      最近更新 更多