Я использую директиву angular-ui typeahead и ng-switch. Цель состоит в том, чтобы при вводе в поле ввода печатного текста появится строка, начинающаяся с «Информация о человеке». В противном случае он не появится. Проблема в том, что эта строка всегда появляется.
Я создал plunker здесь. 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;