我正在使用AngularJS编写SPA。现在,我有一个输入字段,用于触发第三方API的$ http查询。搜索是实时完成的,因为我有一个与输入模型的$ watch绑定。
我的问题是,无论出于何种原因,结果只会在完整字符串与结果一致时出现,而不是之前出现。
例如,如果我正在寻找 Frank Sinatra ,当 Frank 输入到输入中时会出现一些结果,但是一旦我在 Frank Sin ,将出现完全不相关的结果(或结果与 Sin 一致,但不与整个字符串一致,并且只有在输入整个字符串后才会出现所需的结果。 /> 我的理解是,输入不会将输入的文本作为一个整体来处理,而是作为不同单词的总和,这会使查询失败。
我正在附上我的JS,也许我做错了什么!
angular.module('myApp', ['ngResource'])
function Ctrl($scope, $http) {
var search = function(name) {
if (name) {
$http.get('http://api.discogs.com/database/search?type=artist&q='+ name +'&page=1&per_page=5').
success(function(data3) {
$scope.clicked = false;
$scope.results = data3.results;
});
}
$scope.reset = function () {
$scope.sliding = false;
$scope.name = undefined;
}
}
$scope.$watch('name', search, true);
答案 0 :(得分:1)
尝试用+
编辑:
如果使用他们自己在discogs.com
上的搜索,必须在他们的API中实现不同的(也就是破坏的)。
type
时查询结果:
http://api.discogs.com/database/search?q=frank+sin
也许他们的API type
处理程序会假设有关查询字符串的内容。