#angularjs #ionic-framework #angularjs-ng-click #algolia
#angularjs #ionic-framework #angularjs-ng-click #algolia
Вопрос:
Я создаю проект ionic и пытаюсь интегрироваться с Algolia autocomplete.js . Мне удалось заставить систему поиска работать, однако я добавил ng-click в результаты поиска, и эта функция работает не так, как представлено в этом codepen, который я сделал в качестве примера ниже:
http://codepen.io/marcos_arata/pen/VKVOky
Внутри шаблона результата моего algolia:
<a ng-click="add_name({{{ name }}})">
Функция, которая должна запускаться при нажатии:
$scope.add_name = function(name) {
alert('User added!');
console.log(name);
}
Я попытался внедрить результаты внутри области видимости, но также не сработало:
autocomplete('#search_name', { hint: false, debug: true, openOnFocus: true },[{
source: index.ttAdapter({ hitsPerPage: 15 }),
templates: {
header: '',
suggestion: function(hit) {
$scope.hit = hit;
return template.render(hit);
}
}
}]);
http://codepen.io/marcos_arata/pen/VKVOky
—- РЕШАЕМАЯ —-
Вместо того, чтобы создавать функцию ng-click внутри ваших шаблонов, вы можете обрабатывать нажатие события вашего поиска внутри вашей функции «автозаполнение: выбрано» и использовать результаты набора данных и предложения.
.on('autocomplete:selected', function(event, suggestion, dataset) {
$scope.name = suggestion.name;
console.log($scope.name);
## create any functions with the suggestion and dataset results inside
});
Комментарии:
1. Вы можете сделать это следующим образом: <a ng-click=»add_name(имя)»>
2. привет @VijayMaheriya, тоже не работает. моя функция не работает, когда я нажимаю на результаты поиска, как вы можете проверить в моем codepen
3. щелчок проглатывается
.on('autocomplete:selected'
событием. Я не знаю, почему это или как это исправить, но я подумал, что, возможно, дополнительная информация может быть полезной.4. angular и javascript оба не работают. потому что это остановка
Ответ №1:
РЕДАКТИРОВАНИЕ ОТВЕТА:
Вот codepen:
По-видимому, в предложении сохранено выбранное имя, поэтому вам не нужна дополнительная функция:
.on('autocomplete:selected', function(event, suggestion, dataset) {
$scope.name = suggestion.name;
console.log($scope.name);
});
Комментарии:
1. Большое спасибо, все работает отлично! Единственная проблема заключается в том, что похоже, что «функция» выполняется 2 раза. Вы знаете почему?
2. Я попытаюсь открыть codepen и проверить его немного позже
3. кроме того, вы знаете, как я могу очистить ввод после выбора? Я пробовал с angular.element (document. querySelector(‘#search_location’)).html(«); но не сработал