【发布时间】:2016-12-11 16:39:18
【问题描述】:
我之前已经搜索了很多来问这个问题,但我没有找到任何东西。问题是我在服务器的 GET 请求后收到一个 JSON,并正确接收它(我正在检查这个),但选择选项没有重新加载信息。
这是我的代码:
angular.module('app',[])
.controller('SelectController', ['$scope','$http', function($scope, $http) {
$scope.data_info = [
{id:1, name:'Option A'},
{id:2, name:'Option B'},
{id:3, name:'Option C'}
];
$scope.data_model = null;
$http.get('http://localhost:7800/data_info'{headers: {'Content-Type': 'application/json'}})
.success(function(data) {
$scope.data_info = data;
})
.error(function(data){
});
};
}]);
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>
<body ng-app="app">
<div ng-controller="SelectController">
<select
ng-options="d as d.name for d in data_info track by d.id"
ng-model="data_model">
<option value="" disabled selected>Choose an option</option>
</select>
model: {{data_model}}
</div>
</body>
</html>
有什么解决办法吗?
【问题讨论】:
-
把
track by d.id改成track by $index -
这不行,问题是没有用 ng-options 刷新数据。如果在 http 请愿之前初始化 data.info,这些响应不会更新 data.info 值,但是如果我使用 console 打印响应。 log(response) 数据被正确接收。 @georgeawg
标签: javascript html angularjs http