2015-03-18 5 views
1

Проблема в хроме, где у меня мало полей в форме и вы хотите использовать функцию автозаполнения браузера. Here Я нашел проблему с хромом (чтобы сохранить данные только на форме submit), и поэтому, как было предложено принятым ответом на this question, я попытался запустить событие, которое в свою очередь запускает ngClick на том же элементе, который в конечном итоге проходит в цикл.Trigger autocomplete с ngClick без отправки формы

Как я могу использовать функцию автозаполнения при использовании «ngClick»?

+0

Вы всегда можете использовать готовые директивы для автозаполнения, например, ангуполные. – cyan

+0

У вас есть какой-нибудь plnkr/скрипка для этого? –

+1

http://plnkr.co/edit/Nofls3lLJTOYtE51wPNd?p=preview –

ответ

2

Самый чистый способ запуска автозаполнения - использовать ngSubmit. Однако, как вы хотите использовать ngClick, решение вроде этого https://stackoverflow.com/a/25102791 будет работать. Вы отправляете форму с контроллера. Запуск исходной функции отправки необходимо применять через директиву, так как это рекомендуемое место для работы с DOM с помощью AngularJS.

1

Я искал это тоже и наткнулся на это сообщение, поэтому я поделюсь тем, что я обнаружил до сих пор своим решением, и, надеюсь, это помогает :) Я также столкнулся с бесконечным циклом с автозаполнением и после многих испытаний Я обнаружил, что если я называю свою функцию по-разному, она не нажимает петлю.

on-select="ctrl.updateAutoComplete" 

Я считаю, что все равно будет работать для ngClick (в основном я просто удалил скобки здесь)

, а затем в мой контроллер вместо использования

общественного updateAutocomplete (запрос: строка) {//делать вещи здесь}

Я закончил с использованием

public updateAutocomplete = function(query: string) { // do stuff here } 

Кажется, это как бы жестокий способ обойти его, но пока он работает для меня. Я обнаружил, что это также немного затушевывает область $ scope, поэтому я ищу лучшее решение. Но, так или иначе, это так, как я ушел из цикла, надеюсь, это поможет.

Смежные вопросы