【问题标题】:How to store add params in api url using angular js如何使用angular js在api url中存储添加参数
【发布时间】:2014-11-15 00:22:28
【问题描述】:

我的 Angular 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/v1/asasas&filterBy=cardNames&filterByValue=asssas

当有人单击第二个复选框然后像 api 调用一样时,我会尝试做什么

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

【问题讨论】:

    标签: javascript angularjs angularjs-ng-repeat angularjs-service


    【解决方案1】:

    您可以通过ng-model.checked 值添加到cardtype

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

    然后您可以在代码中运行一个循环来确定检查的内容

    $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 调用。

    【讨论】:

    • 谢谢@donovanm。在取消选中时,在代码中,它将通过该值,并且当检查它时,它通过null span>
    • 嗯。这是我在JSFiddle 中得到的信息。在此示例中,密钥会记录在控制台中。
    • 嗨@DonovanM 我Shaw 你的JSFiddle 示例它在Angular js 1.1.1 中运行良好,但是当我更改为angular js 1.2.1 时,它的行为就像我在第一条评论中提到的那样。跨度>
    • 它使用ng-change 而不是ng-click 工作。我已经编辑了我的答案,这里是 JSFiddle example 使用 Angular 1.2.1。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-20
    • 1970-01-01
    • 1970-01-01
    • 2016-07-04
    • 2018-06-02
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多