0

我的角度js函数代码如何存储采用了棱角分明的js

$scope.cardcall = function (cardtype) { 
     $scope.cityname=cityname; 
     $http({method: 'GET',url: '/api/v1/asasas&filterBy=cardNames&filterByValue='+cardtype.key}).success(function(data) { 
      $scope.deal = data.deals;    
     });     
    }; 

我看来码

<div class="check_box" ng-repeat="cardtype in card.cardTypes.buckets">             
<label> 
<input type="checkbox" value=" {{cardtype.key}}" name="cardname" ng-click="cardcall(cardtype)" /> {{cardtype.key}} 
</label>             
</div> 

现在当上复选框一些点击它调用API像

加入API网址参数
/api/v1/asasas&filterBy=cardNames&filterByValue=asssas 

当我点击第二个复选框,然后像API调用

/api/v1/asasas&filterBy=cardNames&filterByValue=asssas,xsdza 

回答

0

你可以通过ng-model

<input type="checkbox" ng-model="cardtype.checked" value=" {{cardtype.key}}" name="cardname" ng-change="typecall()" /> 

添加.checkedcardtype然后,你可以运行在你的代码的循环,以确定是什么检查

$scope.cardcall = function() { 
    $scope.cityname=cityname; 

    var keys = [], 
     buckets = $scope.card.cardTypes.buckets; 

    for (var i = 0, len = buckets.length, i < len; i++) { 
     if (buckets[i].checked) 
      keys.push(buckets[i].key); 
    } 

    if (keys.length) { 
     keys = keys.join(); 

     $http({method: 'GET',url: '/api/v1/asasas&filterBy=cardNames&filterByValue=' + keys}).success(function(data) { 
      $scope.deal = data.deals;    
     }); 
    } 
}; 

这都会被调用一次这些复选框会被选中或取消选中,并且由于它会查看所有复选框,因此无需再通过cardtype.key。如果没有选中复选框,则不会执行AJAX调用。

+0

谢谢@DonovanM。但在您的代码时,取消选中然后它传递的值,当检查它通过null – 2014-09-20 20:01:12

+0

嗯。这是我在[JSFiddle]中获得的内容(http://jsfiddle.net/uq4ndwv1/)。在这个例子中,密钥记录在控制台中。 – DonovanM 2014-09-20 21:25:08

+0

嗨@DonovanM我想你的JSFiddle示例它在Angular js 1.1.1中工作正常,但是当我更改为angular js 1.2.1时,它的行为就像我在第一条评论中提到的那样。 – 2014-09-21 11:09:59