2013-11-01 2 views
1

Я изучаю AngularJS и У меня проблемы с диалогами.Как я могу заставить привязки AngularJS работать с диалогом fancybox?

Поскольку я конвертирую свое приложение из классического Jquery-based в угловое, я хочу использовать Fancybox для открытия диалогов с настраиваемым динамическим HTML внутри, с открытым методом fancybox.

$.fancybox.open(html); 

Я написал службу использовать FancyBox: Теперь я открываю диалоги, но содержимое внутри диалога не «составлен» против углового, поэтому любая угловая директива установлена ​​на этом HTML не работает ,

Смотрите пример

http://plnkr.co/edit/UwryF1ocleyND7zxCGJz?p=preview

Я полагаю, что проблема заключается в службе, но я не знаю, как это исправить. Не могли бы вы показать мне, как я могу получить html разумную угловую директиву внутри HTML, показанную в диалоговом окне?

UPDATE:

я пытался использовать $compile и установить директиву вместо службы (вызов метода внутри директивы непосредственно от нг-клик)

http://plnkr.co/edit/Y18bRSMdV62VObMGJ2Ie?p=preview

что теперь не так? почему мой $compile не работает должным образом?

+0

вам действительно нужно, чтобы обернуть всю FancyBox в угловую директиву, чтобы заставить его работать гладко с угловым – charlietfl

+0

, если '.wrapper' не указано, работают ли предупреждения? Я отключил «display: none», и они этого не сделали. – JFK

+0

@JFK нет, их нет, потому что угловые привязки не скомпилированы. – apelliciari

ответ

3

Проблема заключается в том, что angular ищет функциональные выражения только на scope и НЕ на window как обычная-Javascript делает. Следовательно, при добавлении alert функции на $scope, он будет подключен правильно: http://plnkr.co/edit/y02UMQ2kU4fh8Imsa82u?p=preview

$scope.alert = function (phone) { window.alert(phone.name); }; 
+0

Ты прав. это была очень глупая ошибка! – apelliciari

+1

будущая записка для тех, кто использует coffeescript: убедитесь, что в вашей директиве $ scope.open_fancybox() вы заканчиваете строку с возвратом true. В противном случае взаимодействие с функцией неявного возврата DOM и Coffeescript может позволить произвольную инъекцию. –

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