12

AngularJSでオートコンプリートボックスを作成しています。関連するコードは次のようになります

<input type="text" ng-model="tag">
<div ng-show="tag">
  <ul>
    <li ng-repeat="t in user.tags | filter:{name:tag}">
      <a>{{t.name}}</a>
    </li>
  </ul>
</div>

「タグ」に値がない場合に提案のリストを表示するための最良の方法を知りたい(つまり、ユーザーが下キーを押したときにすべてのタグを表示したい。答え)。

4

2 に答える 2

31

ng-show は bool になる任意の式で動作するため、「tag」を「tag === ''」に置き換えるか、タグが未定義または null になる場合は同等のものに置き換えるだけです。

特定のキーが押されたときにのみ表示したい場合は、下のキーが押されたときに true に設定する別の変数を作成し、それもチェックします。

$scope.KeyPressed = false;
$scope.Tags = '';

$scope.ShowTags = function () {
    return $scope.KeyPressed && $scope.Tags !== '';
};

次に、divで:

<div ng-show="ShowTags()">

たとえば、jsfiddleを参照してください

jqueryプラグイン内から変数を変更する必要がある場合は、使用する必要があるかもしれません

$scope.$apply()
于 2012-12-17T03:25:22.463 に答える