我正在申请。我有一个用户可以输入产品的表单。我用angularjs服务得到了价格。我将它注入.RateInfoService。
因此,如果我输入“Milk”,它会在DOM {{rate}}中说明 - > $ 2
但如果我填写筹码,它会改为{{rate}} - > $ 1.50
但是我想要填充牛奶和那些芯片之后。 所以我希望它在html页面中显示
牛奶 - > 2美元& Chips-> $ 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
我发现可以在网址中转储多个对象。
HTTPS://query.private%20in%20( “牛奶”, “芯片”)及格式= JSON&安培;诊断=真安培; ENV =商店%3A%2F%2Fdatatables.org%2Falltableswithkeys&安培;回调=我怎样才能以棱角分明的最佳方式做到这一点?我是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"
我希望这是足够的信息。 ***不确定样式出错的原因。对不起凌乱的页面。堆栈溢出可以很好地预览这篇文章,但是当我发布它时会出现问题。很多代码都不是灰色的
答案 0 :(得分:1)
我的解决方案
$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);
});
}
})
答案 1 :(得分:0)
抱歉没有足够的回复发表评论。请给我一个加号,如果这有帮助,所以我可以得到更多的代表。
根据您发布的内容,您似乎正在尝试重复用户选择的项目,然后获取每个项目的每个新费率(不确定$ scope.alarmingMarket是否是项目数组)。
如果您想获得用户选择的项目的所有最新费率,您必须向上传递整个项目数组并返回一个数组,让ng-repeat通过将值分配给$来完成工作scope.alarmingMarket(如果那是你的项目列表)。