1

angular-ui typeahead ディレクティブと ng-switch を使用しています。目的は、先行入力ボックスがキー入力されると、「個人情報」で始まる行が表示されることです。そうしないと表示されません。問題は、この行が常に表示されることです。

ここでプランカーを作成しました。 http://plnkr.co/edit/qEaYE6BHjmMewmlheFoh

関連するコード セグメントは次のとおりです。HTML;

<div class='container-fluid' ng-controller="TypeaheadCtrl">
        <h4>Static arrays</h4>
        <!-- <pre>Model: {{selected }}</pre>
        <pre>Model: {{selected.name}} {{selected.id}}</pre> -->
        <div ng-switch="selected.name">
            <div ng-switch-when="" > 
                <BR><BR>                
            </div>
            <div ng-switch-default >              
                <pre>Person info: {{selected.name}} {{selected.id}}</pre> 
            </div>
        </div> 

        <input type="text" ng-model="selected" 
               typeahead="person as person.name for person in person_info | filter:{name:$viewValue} | limitTo:8"                
               class="form-control">        
    </div>

Javascript コントローラー:

var person_info =  [
                        {
                                "name": "Tom",
                                "id": "111"
                        },
                        {
                                "name": "Sam",
                                "id": "222"
                        },
                        {
                                "name": "James",
                                "id": "333"
                        }
                    ];
    $scope.person_info = person_info;
4

1 に答える 1

2

ng-switch の代わりに ng-if/ng-show/ng-hide を使用できます

ここに ng-if のコードがあります

 <div ng-if="selected.name == null" > 
      <BR><BR>                
 </div>
 <div ng-if="selected.name">              
      <pre>Person info: {{selected.name}} {{selected.id}}</pre> 
 </div>

ng-switchに置き換えるだけです

于 2014-05-23T10:04:52.373 に答える