【发布时间】:2017-05-19 11:20:48
【问题描述】:
我不确定这是否有意义,我花了一些时间试图研究我需要的答案。
我想知道是否可以在角度上将 $http.get 请求中请求的 URL 从选择框的值中更改。
所以我构建了一个简单的控制器,它获取一个 JSON 文件并将响应传递到作用域,然后我将该数据传递到视图。
但是我将有几个 JSON 文件,我想在从下拉列表中选择一个选项时加载这些文件并重新加载数据。
我的 Angular 是相当基础的,所以我不确定这是否可以即时完成?
var app = angular.module('serverstats', []);
app.controller('ServerController', function($scope, $http){
var apiFeed = $('.apiSelecter').val();
$http.get(apiFeed).then(function(response){
$scope.status = response.data;
$scope.server = [];
angular.forEach($scope.status.servers, function(svr) {
$scope.server.push(svr);
})
console.log('server', $scope.server);
});
});
<select class="apiSelecter">
<option value="/test.json">Data File 1</option>
<option value="/test1.json">Data File 2</option>
<option value="/test2.json">Data File 3</option>
</select>
<div ng-controller="ServerController" id="server-stats" class="server-stats">
<div ng-repeat="stat in server" class="container" ng-cloak>
<div class="stats-box col-md-2">
<p class="lead">Server Name: {{ stat.serverName }}</p>
</div>
<div class="stats-box col-md-2">
<p class="lead">Response Time: {{ stat.responseTime }}</p>
</div>
<div class="stats-box col-md-2">
<ul>
<p class="lead">Ports</p>
<li><p class="lead">{{ stat.ports.port1 }}</p></li>
<li><p class="lead">{{ stat.ports.port2 }}</p></li>
<li><p class="lead">{{ stat.ports.port3 }}</p></li>
<li><p class="lead">{{ stat.ports.port4 }}</p></li>
<li><p class="lead">{{ stat.ports.port5 }}</p></li>
</ul>
</div>
道歉现在包含代码
【问题讨论】:
-
您可能可以,但如果不先查看您的代码,我们将无能为力。所以请edit你的问题并包括你的代码(创建一个minimal reproducible example)