如何使用angularjs隐藏ng-repeat div?

时间:2015-09-11 11:05:52

标签: javascript angularjs



.controller('CouponsCtrl', ['$scope', '$http', '$window', '$location', '$ionicPopup','$ionicLoading',
    function($scope, $http, $window, $location, $ionicPopup,$ionicLoading) {
        
        $scope.find = function() {
			 
			  $http.get('').success(function(data, dealers, response) {
					
                   		$scope.coupons = data;
					   
                });



            }
}
])

<div class="list card" data-ng-repeat="coupon in coupons |  filter:couponquery ">


  <div class="item item-body" style="padding:10px;">
    <img class="full-image" ng-src="{{coupon.Coupon_Image}}">
    <p style="color:green;font-weight:700">
	{{coupon.Store_Name}}
    </p>
   <p style="font-weight:700">{{coupon.Offer_Meassage}}</p>
  </div>

  <div class="item tabs tabs-secondary tabs-icon-left" >
    
   
    <a class="tab-item" ng-click="apply(coupon._id,coupon.Store_ID)" id="appcolor">
      <i class="icon ion-checkmark-circled" ></i> 
      Activate
    </a>
  </div>
  </div>
&#13;
&#13;
&#13;

我创建了3个优惠券.1个适用于10个用户,第2个适用 对于5个用户和第3个用户适用于20个用户。在用户页面中,我使用ng-repeat列出了带激活按钮的优惠券。如果用户激活优惠券,我在一张桌子中存储了优惠券ID和优惠券,并减少了优惠券的数量例如,用户激活了该计数中的第一张优惠券(10)我减少了1张和9张优惠券,其工作正常。 期望: 如果用户激活优惠券,我想从他/她的个人资料中删除ng-repeat,或者我需要更改该特定个人资料中的按钮状态激活和禁用按钮。

小提琴:http://jsfiddle.net/sreemohan143/U3pVM/18537/

2 个答案:

答案 0 :(得分:0)

您可以使用ng-hide来激活优惠券。

<div ng-repeat="coupon in coupons" ng-hide="coupon.activated"> 
... 
</div> 

此处已更新fiddle link

答案 1 :(得分:0)

点击激活链接

后,按coupons过滤id

此处已更新Fiddle

你的激活功能:

$scope.activate = function(coupon) {
    if(coupon.couponname.indexOf("breakfast") !== -1)
        coupon.noofcoupon--;
    if(coupon.couponname.indexOf("lunch") !== -1)
        coupon.noofcoupon--;
    if(coupon.couponname.indexOf("dinner") !== -1)
        coupon.noofcoupon--;

    if(coupon.noofcoupon === 0){
        $scope.coupons = $scope.coupons = $filter('filter')($scope.coupons,function(value, index, array) {
             return value.id !== coupon.id;
         });
     }
 }