如何编译已经呈现的一些HTML?

时间:2014-04-25 10:32:35

标签: jquery angularjs

我'想在AngularJS中使用jQuery插件。我用一个指令初始化它:

.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视图)中插入您可以在popupParam.title参数中看到的HTML代码。

但是这段代码包含一个我希望用ng-click指令激活它的图标。

如何编译此内容?我测试了以下代码:

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

但是它返回了我的插件无法理解的对象。任何想法或解决方法?

1 个答案:

答案 0 :(得分:2)

对于遇到同样问题的人:

title似乎期望某些HTML作为字符串 $compile(...)(scope)返回一个angular / jQuery元素。

如果插件无法处理,您可以:

  1. 将HTML作为字符串传递
  2. 让插件创建所需的元素
  3. $compile将这些元素插入DOM后的必要元素
  4. <子> 这一切都取决于插件,当然还有它的作用。