0

私はフィルターを使用していますが、ユーザーが入力ボックスに入力すると、すべてがうまく機能します。私が望むのは、ユーザーの入力なしで、コードを介してフィルター処理された結果を更新することです (たとえば、クエリをクリアするため)。変更イベントをトリガーするか、単に入力フィールドの値をクリアしようとしましたが、成功しませんでした。

これが私の最も単純なHTMLです

<div ng-app ng-controller="test">    
    <input type="text" ng-model="query" placeholder="search..">
    <button>Clear</button>
    <ul class="unstyled">
        <li ng-repeat="item in list | filter:query">
            {{item}}
        </li>
    </ul>
</div>

そして、ここにJSがあります:

function test($scope) {
    $scope.list = [120, 566, 777, 889, 998, 332, 112, 440, 881];

    $('button').click(function() {
        $('input').val('');
    });
}

JSFiddle

キーボードを使用して入力の内容を削除せずに結果のフィルタリングを解除するにはどうすればよいですか?コードを使用して(クリアボタンをクリックするなど)実行しますか?

4

1 に答える 1

2

jQueryを介してイベントハンドラーを登録しないng-clickでください。それを処理してください。

<button ng-click="clearBox()">Clear</button>


function test($scope) {
    $scope.list = [120, 566, 777, 889, 998, 332, 112, 440, 881];

    $scope.clearBox = function(){
      $scope.query = "";
    };
}

更新されたフィドル

于 2013-05-13T12:58:37.160 に答える