我怎样才能让 AngularJS 绑定使用花哨的框对话框

How can I get AngularJS binds working with a fancybox dialog?

本文关键字:对话框 绑定 AngularJS      更新时间:2023-09-26

我正在学习AngularJS,我在对话方面遇到了一些困难

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

$.fancybox.open(html);

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

查看示例

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

我想问题出在服务上,但我不知道如何解决。您能否告诉我如何在对话框中显示的 HTML 中获得对角度指令敏感的 html?

更新:

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

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

现在出了什么问题?为什么我的$compile无法按预期工作?

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

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