Pytanie Jak wywołać mailto w kontrolerze AngularJS


Wprowadzam prostą funkcję przesyłania opinii e-mail w kanciastej aplikacji. Poczta ma wstępnie zdefiniowany temat wiadomości i szablon treści. Kontroler kątowy musi wywołać klienta poczty e-mail klienta (np. Wywołać "mailto: foo@bar.com") i spełnić predefiniowany temat, szablon treści. Każdy organ wie, jak go wdrożyć?


18
2017-10-21 11:51


pochodzenie


możliwy duplikat Wysyłanie e-maili za pomocą Javascript - artur grzesiak
Prawdopodobnie można go zawrzeć w dyrektywie. Oto ktoś inny razem wzięty. - Eric McCormick
Jeśli masz teraz odpowiedź na to pytanie, powinieneś wpisać odpowiedź poniżej (nie jako część pytania) i oznaczyć ją jako odpowiedź, więc jest jasne dla innych użytkowników StackOverflow, że to pytanie zostało już rozwiązane. - ClearCloud8


Odpowiedzi:


Wstrzykiwać $window I użyć $window.open() metoda.

Wewnątrz kontrolera zdefiniuj ...

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

i nazwij to jak ...

$scope.sendMail("foo@bar.com","Mail Subject","Mail Body Message");

18
2018-03-08 15:15





użyj $ window.location:

$window.location = "mailto:..."

5
2018-04-01 19:38



nie działa na iOS 9.1 - Sheetal
nie otwiera się niepotrzebna nowa karta przeglądarki, podczas gdy robi to lokalizacja.open (). Wygląda lepiej, jeśli masz pewność, że użytkownik potrzebuje zewnętrznego klienta pocztowego do otwarcia. - garfunkel61


Powinno to otworzyć nową kartę dla poczty Google lub klienta poczty e-mail, w zależności od ustawień użytkownika.

W Angular JS: Połącz łańcuch w kontrolerze w następujący sposób:

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

html

<a ng-href="{{mailLink}}" target="_blank">Send</a>

1
2018-03-22 23:34





location.href działa też!

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

Uwaga: jeśli masz tablicę $scope.allemails, a użyjesz metody .join(', ') - klient poczty e-mail z programem Thunderbringer nie rozpozna tego jako zbioru wiadomości e-mail, a do każdego e-maila z tej tablicy doda nową linię "Do:".


0
2017-09-01 13:05