Вот разметка html:
<script type="text/ng-template" id="typeAheadTemplate.html">
<span bind-html-unsafe="match.model.PROJECT_DESC | typeaheadHighlight:query"></span>
</script>
<div ng-show="commentMain.commentType == 'project'" id="commentProjectOther"
class="btn-group animate-slide-vertical" style="margin-bottom: 7px; margin-left: 7px;">
<input type="text" ng-model="commentMain.project" placeholder="Select the name of the project"
typeahead-on-select="commentMain.comment.PROJECT_ID = $model.PROJECT_ID || null"
typeahead="project for projects in commentMain.getProjects($viewValue)"
typeahead-loading="loadingProjects"
typeahead-template-url="typeAheadTemplate.html" class="form-control" />
</div>
проекты возвращаются как [{PROJECT_DESC: 'Blah', PROJECT_ID: 1,...other params}, etc.]
Доступ к API осуществляется, и параметры заполняются в тип-вперед.
Однако, тип впереди не позволяет мне выбрать любой из вариантов. Я имею в виду, что, когда я наводил курсор на параметры, они не становятся синими, и когда я выбираю параметр, он не заполняет модель (или текстовое поле вперед).
Я думаю, что они не становятся синими, потому что вы использовали свой собственный шаблон для typeahead, если просто хотите показать описание проекта в typeahead, удалите typeahead-template-url
и измените атрибут typeahead на:
typeahead="project as project.PROJECT_DESC for projects in commentMain.getProjects($viewValue)"
И ваш on-select тоже ошибается, должно быть:
typeahead-on-select="commentMain.comment.PROJECT_ID = commentMain.project.PROJECT_ID"
потому что вы определили commentMain.project
как свою модель, и когда вы выберете один проект, это будет заполнено!