Как получить доступ к значению контроллера в пользовательских шаблонах typehead

У меня есть значения области действия в контроллере. Мне нужно отобразить значения области действия в предварительном шаблоне пользовательского типа.

Но пользовательский шаблон не будет получать доступ к значениям контроллера, он всегда отображается пустым.

В моем сценарии мне нужно отображать «scope.names» в пользовательских шаблонах. но показывает пусто.

Как отобразить значения контроллера в пользовательских шаблонах.

HTML:

<div class='container-fluid typeahead-demo' ng-controller="TypeaheadCtrl">
    <h4>Custom popup templates for typeahead's dropdown</h4>
    <pre>Model: {{customPopupSelected | json}}</pre>
    <input type="text" ng-model="customPopupSelected" placeholder="Custom popup template" uib-typeahead="state as state.name for state in statesWithFlags | filter:{name:$viewValue}" typeahead-popup-template-url="customPopupTemplate.html" class="form-control">
</div>

ДЕМО:

https://plnkr.co/edit/HEf0lipdBP5ZyuciQsDo?p=preview


person CodeMan    schedule 09.03.2017    source источник


Ответы (1)


На самом деле у вас было несоответствие в структуре JSON $scope.names и тому, что требует шаблон uib-typeahead. Я изменил массив names, чтобы он соответствовал шаблону структуры, который требуется следующим образом... и он работает. Если вы хотите сделать наоборот, вы можете оставить массив таким же и внести изменения в шаблон!

$scope.names=[{
  name: "Alabama"
}, {
  name: "Alaska"
}, {
  name: "Arizona"
}];

рабочий plnkr

person tanmay    schedule 09.03.2017
comment
Мне нужно отобразить $scope.states ниже, выберите местоположение из раскрывающегося списка и $scope.names ниже пользовательского списка из контроллера. - person CodeMan; 09.03.2017
comment
@CodeMan позвольте мне понять это правильно. Вы хотите отображать элементы двух списков как значения одного выпадающего списка? Таким образом, все, что мы вводим на входе, предлагается обоими списками. Это правильно? - person tanmay; 09.03.2017
comment
@CodeMan Я могу заставить его отображаться, но вы не сможете выбрать что-либо из списка, который мы показываем принудительно. Если вы также хотите иметь возможность выбирать из этого списка, вам нужно объединить два списка и перейти к типу, но тогда они не будут отображаться отдельно - person tanmay; 09.03.2017
comment
любые возможные способы разделения списка - person CodeMan; 09.03.2017