AngularJS - 对同一表单多次 httpget
AngularJS - httpget multiple times for same form
我正在申请。我有一个表格,用户可以在其中输入产品。我通过 angularjs 服务获得价格。我注入了.RateInfoService.
因此,如果我输入 "Milk",它会在 DOM {{rate}} -> $2 中显示
但是如果我填写筹码,它会改变路线到 {{rate}} -> $1.50
但我想在牛奶和薯条之后填充什么。
所以我希望它显示在 html 页面
牛奶->2 美元和薯条->1.50 美元。
所以它会显示这两个项目,用户可以继续输入产品并提交。 (ng-点击)。我也许可以在数组中做到这一点,但请注意我有一个 刷新率 。不确定这是否可以用 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);
};
$scope.alarmingMarket = $scope.hard
我用这个是因为只有在用户填写并按下提交后它才会得到市场价格。
获取价格的RateInfoService:http://pastebin.com/gHfhzMjR
我刚刚发现可以在 url 中转储多个对象。
https://query.private%20in%20("Milk","Chips")&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback =
如何在 angular 中以最佳方式做到这一点?我是 angularjs 的新手(3 周)
这是 Json 格式的视图(解释 $scope.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 很好地预览了这个 post,但是当我发布它时出了点问题。很多代码没有变灰
抱歉,没有足够的代表post发表评论。如果这有帮助,请给我加分,这样我可以获得更多代表。
根据您 post 编辑的内容,您似乎在尝试重复用户选择的项目,然后获取每个项目的每个新费率(不确定 $scope.alarmingMarket 是否是一个数组项或不)。
如果您想获取用户选择的项目的所有最新费率,您必须向上传递整个项目数组并返回一个数组,然后让 ng-repeat 通过将值分配给来完成工作$scope.alarmingMarket(如果那是您的项目列表)。
我的解决方案
$scope.alarmingMarket = [];
$scope.submit = function() {
// $scope.alarmingMarket = $scope.hard
$scope.alarmingMarket.push($scope.hard);
console.log($scope.alarmingMarket);
};
这将推送 $scope.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=')
}
}
})
市场是数组。
并解析 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);
});
}
})
我正在申请。我有一个表格,用户可以在其中输入产品。我通过 angularjs 服务获得价格。我注入了.RateInfoService.
因此,如果我输入 "Milk",它会在 DOM {{rate}} -> $2 中显示但是如果我填写筹码,它会改变路线到 {{rate}} -> $1.50
但我想在牛奶和薯条之后填充什么。 所以我希望它显示在 html 页面
牛奶->2 美元和薯条->1.50 美元。
所以它会显示这两个项目,用户可以继续输入产品并提交。 (ng-点击)。我也许可以在数组中做到这一点,但请注意我有一个 刷新率 。不确定这是否可以用 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);
};
$scope.alarmingMarket = $scope.hard
我用这个是因为只有在用户填写并按下提交后它才会得到市场价格。
获取价格的RateInfoService:http://pastebin.com/gHfhzMjR
我刚刚发现可以在 url 中转储多个对象。
https://query.private%20in%20("Milk","Chips")&format=json&diagnostics=true&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback =如何在 angular 中以最佳方式做到这一点?我是 angularjs 的新手(3 周)
这是 Json 格式的视图(解释 $scope.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 很好地预览了这个 post,但是当我发布它时出了点问题。很多代码没有变灰
抱歉,没有足够的代表post发表评论。如果这有帮助,请给我加分,这样我可以获得更多代表。
根据您 post 编辑的内容,您似乎在尝试重复用户选择的项目,然后获取每个项目的每个新费率(不确定 $scope.alarmingMarket 是否是一个数组项或不)。
如果您想获取用户选择的项目的所有最新费率,您必须向上传递整个项目数组并返回一个数组,然后让 ng-repeat 通过将值分配给来完成工作$scope.alarmingMarket(如果那是您的项目列表)。
我的解决方案
$scope.alarmingMarket = [];
$scope.submit = function() {
// $scope.alarmingMarket = $scope.hard
$scope.alarmingMarket.push($scope.hard);
console.log($scope.alarmingMarket);
};
这将推送 $scope.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=')
}
}
})
市场是数组。
并解析 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);
});
}
})