我使用以下代码允许我的AngularJS应用程序用户使用他们喜欢的邮件客户端发送电子邮件,但是当我点击“发送”按钮时没有任何反应。有人可以检查我的代码并告诉我这里到底缺少什么?感谢
<button type="button" ng-click="sendEmail(message.Email, message.subject, message.body)" >Send</button>
控制器代码:
$scope.sendEmail = function(email, subject, body){
var link = "mailto:"+ email
+ "&subject=New email " + escape(subject);
+ "&body=" + escape(body);
window.location.href = link;
};
答案 0 :(得分:18)
我能想到的两件事可能在这里错了。
首先,空格不是主题中的有效字符。您可能必须将其替换为%20
。
其次,您需要将主题前的&
更改为?
。否则,它会尝试向该地址发送一封电子邮件,包括所有主题和正文参数......
你可以试试这个:
$scope.sendEmail = function(email, subject, body) {
var link = "mailto:"+ email
+ "?subject=New%20email " + escape(subject)
+ "&body=" + escape(body);
window.location.href = link;
};
您可以在此处查看更多信息: http://en.wikipedia.org/wiki/Mailto
答案 1 :(得分:6)
如果有人仍在使用upvoted答案,请记住删除主题转义符上的分号。
这样:
+ escape(subject);
应该是:
+ escape(subject)