2013-11-01 116 views
1

我學習AngularJS和我在與對話一些困難。我怎樣才能讓AngularJS綁定一個fancybox對話框?

,因爲我將我的應用從基於jQuery的古典到角一個,我想使用的fancybox與內部定製動態HTML打開對話框,用的fancybox開法。

$.fancybox.open(html); 

我寫使用的fancybox服務:現在我打開我的對話,但是對話框裏面的內容是不是「編譯」對角,所以任何角度指令對HTML設置不起作用。

見的例子

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

我想這個問題是在服務上,但我不知道如何解決它。你能告訴我怎樣才能在對話框中顯示的HTML中獲得一個html敏感的指令嗎?

UPDATE

我試着使用$compile,和(直接從NG-點擊調用指令裏面的方法)設定的指令,而不是服務的

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

現在有什麼問題?爲什麼我的$compile不能按預期工作?

+0

你真的需要整個的fancybox包裝成一個角度指令,使之與角 – charlietfl

+0

如果'.wrapper'工作進展順利是不被隱藏的,警報是否工作?我禁用「顯示:無」,他們沒有。 – JFK

+0

@JFK沒有它們,因爲角色綁定沒有被編譯。 – apelliciari

回答

3

的問題是,angular查找函數表達式scope,而不是作爲window純JavaScript本身。因此,當你在$scope添加alert功能,它將被正確連接: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的隱式返回函數交互可以允許任意注入。 –

相關問題