Angularjs: после использования директивы для автозаполнения jquery она не работает. Кажется, в этом есть ошибки

в качестве заголовка, когда я пытаюсь применить автозаполнение с помощью директивы angularjs. Сам плагин работает, однако остальной код после инициализации директивы не работает. и не показывает никаких ошибок.

Вот онлайн-тест.

http://jsbin.com/ufihip/4


person Stupidfrog    schedule 25.03.2013    source источник
comment
помогает сохранить актуальность кода для проблемы и удалить несвязанный код. Уточните, в чем заключаются проблемы, и упрощение демонстрации поможет   -  person charlietfl    schedule 25.03.2013


Ответы (1)


Мне это кажется взломом, но я думаю, что это нормально. Это то, что я уловил, задавая еще один вопрос здесь, на SO (на самом деле это была подсказка от charlieftl).

Когда вы выполняете манипуляции с DOM внутри своих директив, лучше всего делать это после того, как все инициализировано (вроде как обратный вызов ready в jQuery). Для этого вы можете использовать setTimeout или $timeout (что по какой-то причине не работает в вашем примере).

Вот исправление вашей директивы:

myApp.directive('uicomplete', function($http) {
    return function(scope, element, attrs) {
        setTimeout(function() {
            element.autocomplete({
                source: ["ActionScript","AppleScript","Asp"]
            });
        }, 1);
    }
});

И в коде: http://jsbin.com/ufihip/7/

person Langdon    schedule 25.03.2013