Javascript 链接上的mailto协议以HTML标记打开

Javascript 链接上的mailto协议以HTML标记打开,javascript,html,angularjs,Javascript,Html,Angularjs,我在angular JS模板中使用以下代码打开outlook,并预先填充了一些字段 <a href="mailto:{{item.caseOwner}}?subject= Case {{item.caseNumber}}">OWNER</a> 当item.caseOwner是字符串时,此选项可以正常工作。但在某些情况下,为了突出显示,它被包装在HTML标记中 item.caseOwner = <span class"highlight">abc@xyz.co

我在angular JS模板中使用以下代码打开outlook,并预先填充了一些字段

<a href="mailto:{{item.caseOwner}}?subject= Case {{item.caseNumber}}">OWNER</a>
当item.caseOwner是字符串时,此选项可以正常工作。但在某些情况下,为了突出显示,它被包装在HTML标记中

item.caseOwner = <span class"highlight">abc@xyz.com<span>;

在这种情况下,outlook打开时带有HTML标记,没有任何意义。是否有方法在用户单击链接之前提取中的字符串?

创建自定义筛选器以清除item.caseOwner

为了清理span标记,可以像这样实现搜索替换

function asEmailFn(emailAddressOrMarkup) {
    return emailAddressOrMarkup
        .replace(/<[\/]*?span.*?>/g, '');
}

angular.module('App', [])
.filter('asEmail', function() {
  return asEmailFn;
})
.controller('TestController', ['$scope', 'asEmail', function($scope, asEmail) {
}]);

我是这样做的

在应用程序的主父控制器中,即alias home

在HTML代码中:

<a href="mailto:{{home.stripOffHTML(item.caseOwner)}}?subject=Case {{item.caseNumber}}">OWNER</a>

是的,您可以在A标记中创建onclick事件并进行一些清理。这可能需要测试。你不能用其他方法突出显示吗?没有理由在html标记中包含html标记!也许这有帮助?可能是感谢@Oluwefemi的复制品。我做这件事的方式有点不同。
function asEmailFn(emailAddressOrMarkup) {
    return emailAddressOrMarkup
        .replace(/<[\/]*?span.*?>/g, '');
}

angular.module('App', [])
.filter('asEmail', function() {
  return asEmailFn;
})
.controller('TestController', ['$scope', 'asEmail', function($scope, asEmail) {
}]);
home.stripOffHTML = function(itemString){
    let localString = itemString;
    if(localString){
      return localString.replace(/<\/?[^>]+(>|$)/g, "");
    }
};
<a href="mailto:{{home.stripOffHTML(item.caseOwner)}}?subject=Case {{item.caseNumber}}">OWNER</a>