AngularJS -对同一个表单多次httpget

AngularJS - httpget multiple times for same form

本文关键字:httpget 表单 同一个 AngularJS      更新时间:2023-09-26

我正在申请。我有一个表单,用户可以在其中输入产品。我通过angularjs服务获得了这个价格。我把它注射进去。RateInfoService .

所以如果我输入"Milk"它会在DOM中显示{{rate}} -> $2

但是如果我输入chips,它将改变方向为{{rate}} -> $1.50

但是我想填的是牛奶,然后是薯条。所以我想让它显示在html页面

牛奶- - -> 2美元,芯片-> 1.50美元。

它会同时显示两个项目,用户可以继续输入产品并提交。(ng-click)。我可能能够在数组中做到这一点,但请注意,我有一个刷新率。我不确定ng-repeat是否可行,甚至不确定是否可行。

.controller("MainCtrl", function($scope, $http, $timeout, $ionicPlatform, $cordovaLocalNotification, $ionicPopup, RateInfoService, AlarmService, MonitorService) {
      $scope.refreshRate = 5000;
      $scope.refreshData = function() { 
        RateInfoService.getMarket($scope.alarmingMarket).success(function(data) {
          $scope.rate = data.query.results.rate.Rate;
          $scope.updateTime = data.query.results.rate.Time;
        })
  }

<label class="item item-input">
 <span class="input-label">Product name</span>
 <input type="text" min="3" ng-model="hard" name="text" autofocus required>
</label>

还有一些额外的信息

  $scope.submit = function() { 
  $scope.alarmingMarket = $scope.hard
  console.log($scope.monitors);
};

美元范围。alarmingMarket = $scope.hard

我使用这个,所以它只会在用户填写并按下提交后获得市场价格。

RateInfoService获取价格:http://pastebin.com/gHfhzMjR

我刚刚发现可以在url中转储多个对象。

https://query.private%20in%20("牛奶"、"芯片")格式= json&diagnostics = true&env =商店% 3 % 2 f % 2 fdatatables.org % 2 falltableswithkeys&callback =

我怎样才能在angular中做到最好?I 'm new in angularjs(3周)

这是Json格式的视图(解释$作用域)。rate = data.query.results.rate.Rate;)
  "results": {
   "rate": [
    {
     "id": "MILK",
     "Name": "MILK",
     "Rate": "1.1054",
     "Date": "10/26/2015",
     "Time": "9:37pm",
     "Ask": "1.1056",
     "Bid": "1.1052"
    },
    {
     "id": "CHIPS",
     "Name": "CHIPS",
     "Rate": "1.5349",
     "Date": "10/26/2015",
     "Time": "9:37pm",
     "Ask": "1.5352",
     "Bid": "1.5346"
我希望这是足够的信息。***不知道为什么造型会出错。对不起,这一页很乱。Stack overflow给出了这篇文章的一个很好的预览,但是当我发布它的时候出现了一些问题。很多代码都没有变灰

我的解决方案

    $scope.alarmingMarket = [];
  $scope.submit = function() { 
     // $scope.alarmingMarket = $scope.hard
     $scope.alarmingMarket.push($scope.hard);
      console.log($scope.alarmingMarket);
    };

将$作用域内的所有内容压入。alarmingMarket数组。

获取费率的服务

    module.service('RateInfoService', function($http) {
        return {
                getMarket: function(alarmingMarket) {
                    var market = alarmingMarket
                        return $http.get('https://query.private%20in%20(%22'+ market  + '%22)&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=')
                }
        }
})

market是数组。

和解析Json
 $scope.refreshData = function() { 
RateInfoService.getMarket($scope.alarmingMarket).success(function(data) {
  if($scope.alarmingMarket.length <= 1){ //if alarmingMarket[] has only 1 market
    $scope.rate = [];
    $scope.rate.marketid = data.query.results.rate.id;
    $scope.rate.rate = data.query.results.rate.Rate;
    $scope.rate.updateTime = data.query.results.rate.Time;
    console.log($scope.rate);
  }else{
  angular.forEach(data.query.results.rate, function (value, key) {
    $scope.rate = [];
    $scope.rate.marketid = data.query.results.rate[key].id;
    $scope.rate.rate = data.query.results.rate[key].Rate;
    $scope.rate.updateTime = data.query.results.rate[key].Time;
    console.log($scope.rate);
});
  }
})

抱歉,我没有足够的代表来发表评论。如果这对我有帮助,请给我一个加分,这样我就可以得到更多的代表

从您发布的内容来看,似乎您正在尝试重复用户选择的项目,然后获得每个项目的每个新费率(不确定$scope。alarmingMarket是否为项目数组)。

如果您想获得用户所选项目的所有最新价格,您必须传递整个项目数组并返回一个数组,并让ng-repeat通过将值赋给$作用域来完成这项工作。alarmingMarket(如果这是你的商品清单)。