我有一个 $watch 输入,它实时更新搜索查询,全部使用 AngularJS。我的问题是,即使将模型的初始值定义为空,它也会触发搜索并默认显示结果。
所以我的问题是,默认情况下有一个空值,是否有某种方法可以仅在用户在输入中输入内容时才真正触发搜索?我尝试创建一个在 ng-click 上触发 $watch 的函数,但到目前为止没有运气,与 ng-init 相同。也许在 ng-repeat 上创建一个条件,使其仅在 name != '' 时运行?
关于可能的解决方法的任何想法?
这是我的 JS:
function Ctrl($scope, $http) {
var get_results = function(name) {
$http.get('http://api.discogs.com/database/search?type=artist&q='+ name +'&page=1&per_page=30').
success(function(data3) {
$scope.results = data3.results;
});
}
$scope.$watch('name', get_results, true);
$scope.name = '';
}
我的 HTML:
<div ng-controller="Ctrl">
<h1>Search Artist</h1>
<input type="text" ng-model="name"/>
<ul>
<li ng-repeat="result in results">{{result.title}}</li>
</ul>
</div>
和一个工作的JSFiddle。
任何帮助将不胜感激!谢谢,埃里克