我正在尝试使用uib-typeahead-angularjs在一个字段的表单前面添加类型。前面的类型工作正常,只是问题在于这些选项未作为下拉列表列出。
图片1 :预先输入的预期输出
图片2 :实际输出(在此我没有得到列表)
如果我键入数据库中存在的某些内容,则它不会显示列表,并且如果我尝试输入数据库中不存在的某些内容,则会出现“找不到学生”的错误,同时我也可以正确获取数据我的日志。
HTML :
<div class="form-group">
<label>Student Name</label>
<input class="form-control"
placeholder="Select Student"
uib-typeahead="student.name as student.name for students in searchStudents($viewValue)"
typeahead-on-select="setStudent($item)"
typeahead-editable="false"
typeahead-loading="loadingStudent"
typeahead-no-results="noStudentFound"
ng-model="editableAcademicsTransaction.student.name" />
<p ng-show="noStudentFound" class="help-block text-muted">No Student Found</p>
<p ng-show="loadingStudent" class="help-block text-muted">Loading...</p>
</div>
JS控制器:
$scope.searchStudents = function (searchTerm) {
return StudentService.findByNameLike({
'name': searchTerm
}).$promise;
};
$scope.selectStudent = function (student) {
$scope.editableAcademicsTransaction.student = student;
$scope.editableAcademicsTransaction.studentId = student.id;
};
Angular Service调用REST服务:
.factory('StudentService', function ($http, $resource, restRoot, contextPath) {
return $resource(restRoot + '/student/:id', {'id': '@id'}, {
'findByNameLike': {
'method': 'GET',
'url': restRoot + '/student/find/student_like',
'params': {
'name': '@name'
},
'isArray': true
}
});
});
我在许多应用程序中都使用过此代码很多次,而且从未遇到任何问题。在此应用程序中,为了节省时间,我们直接使用了Creative Tim的Light Bootstrap Dashboard。我不知道这是通过重写类还是在隐藏下拉列表/列表的过程中造成任何问题。
我尝试在线搜索问题,但无法找到解决方案。这是我在网上浏览过的一些链接: