Angular - 带动态模板的指令

时间:2015-06-05 14:08:57

标签: javascript html angularjs caching angularjs-directive

我使用动态模板创建了一个指令,它运行良好。 问题是我收到了一个错误:

  

在Chrome = TypeError:undefined不是forEach.attr的函数   在Firefox =错误:element.setAttribute不是函数

以下是代码:

return {
    restrict:'E',
    replace:true,
    scope:{
        content:'@'
    },
    controller:function($scope){
        $scope.getTemplateUrl = function() {
            if($scope.content.match(/<img/i) && !$scope.content.match(/icon-subs/i)) {
                return 'app/templates/_image.html';
            } else if ($scope.content.match(/<a/i)) {
                return 'app/templates/_link.html';
            } else if ($scope.content.match(/<iframe/i)) {
                return 'app/templates/_video.html';
            } else {
                return 'app/templates/_minutes.html';
            }
        }
    },
    template: '<div ng-include="getTemplateUrl()"></div>'
};

指令标记:

<div ng-repeat="lance in contentsArray">
    <icone-timeline data-content="{{lance.content}}"></icone-timeline>
    <div ng-bind-html="lance.content"></div>
</div>

1 个答案:

答案 0 :(得分:-1)

经过长时间的运行我找到了解决方案,问题是:

replace:true,

我删除这部分后,问题就解决了。