0

我正在用 AngularJS 编写一个 SPA。现在,我有一个输入字段,它使用 $http 触发对第 3 方 API 的查询。搜索是实时完成的,因为我有一个 $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);
4

1 回答 1

1

尝试将空格替换为+

编辑:

这就是他们自己的搜索discogs.com的使用方式,他们的 API 中必须有一些不同的实现方式(也就是损坏的)。

Edit2:当我丢失时,我确实得到了一些“Frank Sinatra”结果type,查询这个:

http://api.discogs.com/database/search?q=frank+sin

也许他们type的 API 处理程序假设了关于查询字符串的事情。

于 2014-03-16T00:58:22.790 回答