【发布时间】:2016-04-18 15:54:50
【问题描述】:
我刚开始学习 Angular,但在基于 http-get 请求检索数据时遇到了问题。当我简单地检索所有电影时,它可以工作,但当我尝试根据搜索词检索电影时(cfr. search.html)就不行了。我希望有人能告诉我我哪里出错了,我真的看不到它。提前谢谢你。
app.js:
var app;
(function() {
app = angular.module('imdb', ['ngRoute']);
app.config(function($routeProvider) {
$routeProvider
.when('/search', {
controller: 'SearchController',
templateUrl: 'views/search.html'
})
.when('/movies', {
controller: 'MovieController',
templateUrl: 'views/movies.html' //works fine
})
.otherwise({
redirectTo: '/movies'
});
});
})();
SearchController.js
(function (app) {
app.controller('SearchController', ['$http', '$scope', function ($http, $scope) {
$scope.movies = [];
$scope.searchMovie = function(title) {
$http.get('https://angularbackend.azurewebsites.net/api/Movies/Search?title=' + title)
.success(function(data) {
$scope.movies = data;
});
};
}]);
})(app);
search.html
<div>
<form class="form" novalidate name="searchMovies" ng-submit="SearchController.searchMovie(title)" >
<input type="text" ng-model="title" class="form-control" placeholder="enter title">
<button type="submit" class="btn btn-primary btn-block">Search</button>
</form>
<table class="table">
<thead>
<tr>
<th>poster</th>
<th>title</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="movie in movies">
<td>{{ movie.title }}</td>
</tr>
</tbody>
</table>
</div>
【问题讨论】:
-
您是否尝试将
https://angularbackend.azurewebsites.net/api/Movies/Search?title=someTitle粘贴到浏览器中以确保您的后端正确响应? -
什么异常不起作用?你得到错误的数据吗?还是您的 APi 呼叫没有被触发,您在拨打电话时收到 404 还是您的标题为空...?