继续学习一些Angular,我想知道如何将这个硬编码的JSON数组替换为使用http get
拉取的JSON。这是plunker即时通讯工作。在顶部,我这样做是为了填充我在下拉列表中使用:
angular.module('myapp', [])
.controller('MainCtrl', function($scope, $http) {
var records;
$scope.selCountry = '';
$scope.searchText = '';
$http.get('http://www.w3schools.com/angular/customers.php').success(function(dt) {
//window.alert(angular.toJson(dt));
var countries = [];
records = dt.records;
dt.records.forEach(function(o) {
var c = o.Country;
if (countries.indexOf(c) == -1)
countries.push(c);
});
$scope.countries = countries;
$scope.total = countries.length;
});
我不知道这是否也是我填充阵列的地方?或者甚至是这样做的(就像我上面做的那样)。我是否必须为所有对象创建数组,或者我可以只访问传入的JSON。 THX。
答案 0 :(得分:1)
是的,您可以在此处为您的范围变量分配api响应。你可以这样写:
$http.get('http://www.w3schools.com/angular/customers.php').success(function(dt) {
//window.alert(angular.toJson(dt));
$scope.countries = [];
$scope.records = dt.records;
dt.records.forEach(function(o) {
var c = o.Country;
if ($scope.countries.indexOf(c) == -1)
$scope.countries.push(c);
});
$scope.total = $scope.countries.length;
});
您也不需要$ scope.total变量。您可以使用$ scope.countries.length
来访问它