如何让AngularJS绑定使用fancybox对话框?

时间:2013-11-01 15:01:28

标签: javascript jquery angularjs dialog fancybox

我正在学习AngularJS和我在对话中遇到一些困难

由于我将我的应用程序从基于Jquery的经典转换为有角度的应用程序,我想使用Fancybox打开带有自定义动态HTML的对话框,并使用fancybox open方法。

$.fancybox.open(html);

我写了一个使用fancybox的服务:现在我打开我的对话框,但对话框内的内容不是"编译"反对角度,因此在该HTML上设置的任何角度指令都不起作用。

参见示例

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

我认为问题在于服务,但我不知道如何解决它。你能告诉我如何在对话框中显示的HTML内部获得对HTML指令敏感的HTML吗?

更新

我尝试使用$compile,并设置指令而不是服务(直接从ng-click调用指令中的方法)

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

现在有什么不对?为什么我的$compile没有按预期工作?

1 个答案:

答案 0 :(得分:3)

问题在于angularscope上查找而在window上查找函数表达式,就像普通javascript那样。因此,当您在alert上添加$scope功能时,它将正确连线:http://plnkr.co/edit/y02UMQ2kU4fh8Imsa82u?p=preview

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