【发布时间】:2016-01-28 02:52:41
【问题描述】:
我正在使用来自 google Books API 的 API 使用 Angular 的 $http.get(..)。我希望输入字段存储可以存储在查询字符串中的用户输入:'/q=/key=....'
当我提交搜索字段时,请求成功,但未显示信息。我已经为此工作了一段时间,但仍然卡住了。会不会是我的控制器?或者我如何设置请求? 结果就是这样:
这是代码。
app.controller("HomeController", ['$scope', '$location', 'bookSearch',function($scope, $location, bookSearch){
$scope.website="CoolMark";
$scope.books= '';
$scope.submit= function () {
if($scope.books === ''){
alert('Field is empty');
console.log('not working');
return false;
} else {
$location.path('/search');
bookSearch($scope.books).success(function(data){
$scope.searchResult= data;
});
console.log(typeof $scope.books);
}
};
}]);
现在开始服务...
app.factory('bookSearch', ['$http', function($http){
return function(info){
return $http.get('https://www.googleapis.com/books/v1/volumes?q='+info+'&orderBy=relevance&filter=ebooks&key=AIzaSyCpWB1q0-kqFEH9f5Sh8xUrXfrhoxAG7wk')
.success(function(data){
return data;
})
.error(function(err){
return err;
});
};
}]);
任何建议如何改进此代码?至于视图,这里是:
<div class="feature">
<div class="container">
<h3>Return Home</h3>
<h2 class="text-center">Your Results for: "{{books}}"</h2>
<div class="book_content">
<div ng-repeat="item in searchResult.items" id="book-item">
<img ng-src="{{item.volumeInfo.imageLinks['thumbnail']}}" alt="">
<h5>{{item.volumeInfo.title}}</h5>
<p>{{}}</p>
</div>
</div>
</div>
</div>
【问题讨论】:
-
尝试删除工厂中的
.success and .error处理程序 -
视图没有发生任何变化。我认为这是需要改变的观点?
-
你能把请求返回的数据贴出来吗?我创建了一个 plunker,与您所拥有的不完全相似,但请看一下 plnkr.co/edit/nrF4JIoAr3DfGKalUXuH?p=preview
-
我更新了一张照片结果是空的,什么都没有。好吧,除了请求之外,我在视图中放置的内容没有任何问题。也许是我的控制器什么的。
标签: angularjs http view controller request