我有一个关于 ng-repeat 的列表,它显示来自 $http 查询的结果列表(绑定到输入)。我希望当用户单击其中一个结果时列表消失,并希望恢复模型的初始空值。基本上,功能如下:
用户搜索词,列表显示结果,用户点击结果,列表消失,用户再次点击输入进行另一次搜索,出现新结果列表。
到目前为止,我已经设法使列表消失,但当用户进行另一次搜索时,它不会再次出现。
以下是相关代码:
<input type="text" ng-model="name" ng-click="Research()"/>
<ul ng-hide="clicked" ng-show="retype">
<li ng-repeat="result in results" ng-click="getDetails(result.id)">{{result.title}}</li>
</ul>
和 JS:
function Ctrl($scope, $http) {
var get_results = function(name) {
if (name) {
$http.get('http://api.discogs.com/database/search?type=artist&q='+ name +'&page=1&per_page=8').
success(function(data3) {
$scope.results = data3.results;
});
}
}
$scope.name = '';
$scope.$watch('name', get_results, true);
$scope.getDetails = function (id) {
$http.get('http://api.discogs.com/artists/' + id).
success(function(data) {
$scope.artist = data;
});
$http.get('http://api.discogs.com/artists/' + id + '/releases?page=1&per_page=500').
success(function(data2) {
$scope.releases = data2.releases;
});
$scope.clicked = true;
}
function Research(){
$scope.retype = true,
$scope.name = '';
}
Plunkr 坏了,我会尽快做一个。关于我错过了什么的任何想法?