2014-04-25 24 views
0

我想在AngularJS上使用jQuery插件。我用一個指令初始化:如何編譯一些已經呈現的HTML?

.directive('myDirective', function($compile) { 
    return { 
     link : function(scope, elem, attrs) { 
      statusPopup = elem.find('div'); 
      scope.$on('anEvent', function(event, param) { 
       popupParam = { 
        context : ".anId", 
        title : '<div class="ui label"><i ng-click="test()" class="remove icon""></i></div>' + param.title, 
        content : param.text 
       }; 
       statusPopup.popup(popupParam).popup('show'); 

       scope.test = function() { 
        console.log('Clic passsed !') 
       } 
      }) 
     }, 
     templateUrl : 'myTemplate.html' 
    }; 
}); 

這對我的DOM插件插入(進入myTemplate.html視圖)的HTML代碼,你可以在popupParam.title參數見。

但是這段代碼包含一個圖標,我想用ng-click指令激活它。

如何編譯此內容?我測試了以下代碼:

title : $compile('<div class="ui label"><i ng-click="test()" class="remove icon""></i></div>' + param.title)(scope) 

但它返回一個對象,我的插件不理解。任何想法或解決方法?

+1

它返回'angular element' /'jQuery元素'。如果你的插件需要一個字符串,那麼它不會理解那個對象。這一切都取決於插件。在插入DOM之後,您可以「編譯」彈出窗口(但是我們需要更多關於插件功能的詳細信息)。 – gkalpak

+0

@ExpertSystem插入後編譯彈出窗口的好主意,它工作正常! – Fractaliste

回答

2

具有相同問題的人:

title似乎想到了一些HTML作爲一個字符串。
$compile(...)(scope)返回一個角度/ jQuery元素。

如果插件不能處理這個問題,你可以:

  1. 通過HTML作爲字符串
  2. 讓插件來創造它需要
  3. $compile必要的元素的元素,他們插入後DOM

這一切都取決於插件,當然,它的功能。