#angularjs #sql-server #node.js
#angularjs #sql-сервер #node.js
Вопрос:
Привет, я новичок в AngularJS, и я пытаюсь получить данные из своей базы данных на свой контроллер, чтобы создать панель поиска автозаполнения. Вот мой код, в котором я подключаюсь к своей базе данных и собираю нужные мне данные:
router.get('/request', function (req, res) {
connection.then(function(){ //connection is my sql.connect to the confing
new sql.Request().query("SELECT FullName from Employee").then(function(recordset){
res.render('request',{json: JSON.stringify(recordset)});
}).catch(function(err){
console.log("Connection Error " err);
});
});
});
Вот мой код контроллера:
app.controller('autocompleteCtrl', ['$scope', '$http', function($scope, $http){
var self = this;
self.data = null;
self.selectedItem = null;
self.searchText = null;
self.querySearch = function(){
$http.get('/users/request').then(function(result){
self.data = result.data.Search;
return result.data.Search;
});
}
}]);
Вот код внутри представления:
<md-autocomplete md-floating-label="Employee name"
flex=""
md-item-text="item.FullName"
md-items="item in ctrl.data"
md-search-text-change="ctrl.querySearch(ctrl.searchText)"
md-search-text="ctrl.searchText"
md-selected-item="ctrl.selectedItem"
md-no-cache="ctrl.noCache"
md-input-maxlength="30"
md-input-minlength="3"
md-input-name="autocompleteField"
required="">
<md-item-template>
<span md-highlight-text="ctrl.searchText">{{item.FullName}}</span>
</md-item-template>
<div ng-messages="searchForm.autocompleteField.$error" ng-if="searchForm.autocompleteField.$touched">
<div ng-message="required">You <b>must</b> have a favorite movie.</div>
<div ng-message="minlength">Your entry is not long enough.</div>
<div ng-message="maxlength">Your entry is too long.</div>
</div>
</md-autocomplete>
Когда я пытаюсь ввести текст в строке поиска, он выдает ошибку :
Не удается прочитать свойство ‘then’ неопределенного
Я не знаю, как это сделать… Пожалуйста, помогите мне! Спасибо!
Комментарии:
1. Чтобы получить больше шансов на ответ, я бы где-нибудь загрузил рабочий пример и указал, где именно в коде вы получаете ошибку. Недавно у меня была эта ошибка здесь: github.com/angular/material/blob/master/src/components/… Я больше не знаю, как я это решил, но, глядя на ваш код, я бы попытался установить для данных некоторое начальное значение [] .
2. Как сказал райчу, вам необходимо предоставить дополнительную информацию о коде, в котором возникает ошибка. Но все же я думаю, что ошибка связана с вашим HTTP-вызовом
$http.get('/users/request')
. проверьте ответ на этот вызов наnetwork
вкладке консоли разработчика браузеров. скорее всего, вnode.js
коде есть проблема на стороне сервера, либо он не отправляет никаких данных, либо полностью выходит из строя.