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?
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");
utiliser $de la fenêtre.emplacement:
$window.location = "mailto:..."
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>
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.