离子:点击事件不是拦截

时间:2017-02-10 02:40:14

标签: angularjs ionic-framework

我有这个指令拦截链接点击:

var app = angular.module('mobApp.services');
app.directive('a', function() {
    return {
        restrict: 'E', // only Elements (<a>),
        link: function(scope, elm, attr) {
            elm.on('click', function($event) {
                $event.preventDefault()
                var href = attr.href;
                if(!!href && href !== '#') {
                    window.open(href, '_system', 'location=yes');
                }
                return false
            })
        }
    }
})

我有这个元素

<p ng-bind-html="post.details | linky:'_blank'" class="ng-binding">
   <a target="_blank" href="https://davidwalsh.name/speech-recognition" class="">
        https://davidwalsh.name/speech-recognition
   </a>
</p>

点击a不会触发上述指令代码。

1 个答案:

答案 0 :(得分:1)

它不起作用,因为您通过ng-bind-html呈现的html标记尚未由Angular编译,以便指令可以正常工作。因此,如果要动态地向文档添加指令,则必须compile它。以下是answer如何做到这一点。