すべて AngularJS を使用して、検索クエリをリアルタイムで更新する $watch を入力しました。私の問題は、モデルの初期値を空として定義しても、検索がトリガーされ、デフォルトで結果が表示されることです。
だから私の質問は、デフォルトで空の値を持つことを目指して、ユーザーが入力に何かを入力したときにのみ実際に検索をトリガーする方法はありますか? ng-click で $watch をトリガーする関数を作成しようとしましたが、これまでのところ、ng-init と同じようにうまくいきません。ng-repeat の条件を作成して、名前が != '' の場合にのみ実行することもできますか?
考えられる回避策について何か考えはありますか?
ここに私の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。
どんな助けでも大歓迎です!ありがとう、エリック