$goQuery возвращает только одно значение
У меня есть модель области под названием person, которая имеет имя, фамилию и полное имя. Мой goQuery работает с этим:
$scope.person = $goQuery('person', { userName: $scope.person.findme }, { sort: { 'userName': 'asc' }, limit: 1 }).$sync();
Единственная проблема, с которой я столкнулся, заключается в том, что она заполняет значение только для поля, которое я ищу, а не всю модель. Что мне не хватает?
2 ответа
$scope.person.findme выдает ошибку, потому что $ scope.person еще не определен. Я не уверен, как это работает вообще.
Вот рабочий пример:
$scope.person = $goQuery('person', 'person', { userName: 'user1' }, { sort: { 'userName': 'asc' }, limit: 1 }).$sync();
$scope.person.$add({ userName: 'user1', fname: 'a', lname: 'b'});
$scope.person.$add({ userName: 'user2', fname: 'c', lname: 'd'});
$scope.person.$add({ userName: 'user3', fname: 'e', lname: 'f'});
window.person = $scope.person;
Если вы посмотрите на модель в window.person, то увидите под ней идентификатор пользователя 1 и его данные.
Хорошо. Спасибо, Колин Макдональд. Вот как вы возвращаете результаты в свою область: HTML CODE:
<label>Find User:</label>
<input type="text" ng-model="person.findme" placeholder="Enter Full Name to Search..." />
<input type="button" id="Find" value="Search" ng-click="Find()" />
JAVA SCRIPT:
$scope.Find = function () {
console.log('entering find method...')
$scope.person = $goQuery('person', { userName: $scope.person.findme }, { limit: 1 }).$sync();
$scope.person.$on('ready', function () {
var id = $scope.person.$$index[0];
if (!id) {
// no results found
return;
}
$scope.person = $scope.person[id];
$scope.person.id = id;
});
};