Comment invoquer mailto dans le controller D'AngularJS

je suis en train d'implémenter une fonction simple de retour d'e-mail dans l'application angular. Le mail a prédéfini le sujet du mail et le modèle de contenu. Le contrôleur angulaire doit amener le client email client (comme invoke "mailto:foo@bar.com") and fulfil predefined subject, content template. Tout corps de savoir comment la mettre en œuvre?

18
demandé sur Makoto 2013-10-21 15:51:59

4 réponses

Injecter $window et utiliser $window.open() méthode.

définition du contrôleur intérieur...

$scope.sendMail = function(emailId,subject,message){
    $window.open("mailto:"+ emailId + "?subject=" + subject+"&body="+message,"_self");
};

et l'appeler comme...

$scope.sendMail("foo@bar.com","Mail Subject","Mail Body Message");
18
répondu Ankit Pundhir 2016-03-08 15:15:03

utiliser $de la fenêtre.emplacement:

$window.location = "mailto:..."
5
répondu zhekaus 2015-04-01 19:38:20

ceci devrait ouvrir un nouvel onglet pour Google mail ou email client, en fonction des paramètres des utilisateurs.

dans Angular JS: chaîne concaténée dans controller comme so:

$scope.mailLink = "mailto:" + $scope.emailId + "?subject=" + $scope.Subject + '&body=' + $scope.bodyText;

html

<a ng-href="{{mailLink}}" target="_blank">Send</a>
1
répondu Uliana Pavelko 2017-07-03 10:32:16

location.href ça marche aussi!

$scope.email = function(item){
    location.href= 'mailto:' + $scope.allemails (array) + '?subject=Subject you want';
}

Note: Si vous avez un tableau dans $scope.allemails, et vous utilisez la méthode .join(', ') - le client de courriel thunderbringer ne reconnaîtra pas ceci comme une collection de courriels et il ajoutera une nouvelle ligne de 'à:' à chaque courriel de ce tableau.

0
répondu nicolae maties 2016-09-01 14:11:36