我正在学习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
没有按预期工作?
答案 0 :(得分:3)
问题在于angular
在scope
上查找仅而在window
上查找函数表达式,就像普通javascript那样。因此,当您在alert
上添加$scope
功能时,它将正确连线:http://plnkr.co/edit/y02UMQ2kU4fh8Imsa82u?p=preview
$scope.alert = function (phone) { window.alert(phone.name); };