в качестве заголовка, когда я пытаюсь применить автозаполнение с помощью директивы angularjs. Сам плагин работает, однако остальной код после инициализации директивы не работает. и не показывает никаких ошибок.
Вот онлайн-тест.
в качестве заголовка, когда я пытаюсь применить автозаполнение с помощью директивы angularjs. Сам плагин работает, однако остальной код после инициализации директивы не работает. и не показывает никаких ошибок.
Вот онлайн-тест.
Мне это кажется взломом, но я думаю, что это нормально. Это то, что я уловил, задавая еще один вопрос здесь, на 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/