2013-10-21 16 views
18

Tôi đang triển khai tính năng phản hồi email đơn giản trong ứng dụng góc. Thư đã xác định trước chủ đề thư và mẫu nội dung. Bộ điều khiển góc cần đưa lên ứng dụng email khách (như gọi "mailto: [email protected]") và hoàn thành chủ đề được xác định trước, mẫu nội dung. Bất kỳ cơ thể biết làm thế nào để thực hiện nó?Cách gọi mailto trong bộ điều khiển AngularJS

+2

có thể trùng lặp của [Gửi email bằng Javascript] (http://stackoverflow.com/questions/271171/sending-emails-with-javascript) –

+2

Bạn có thể đưa nó vào chỉ thị. [Đây là một người khác đặt lại với nhau] (https://github.com/updatezen/angular-mailto). –

+3

Nếu bây giờ bạn có câu trả lời cho câu hỏi này, bạn nên nhập câu trả lời dưới đây (không phải là một phần của câu hỏi) và đánh dấu câu trả lời, vì vậy ngay lập tức người dùng StackOverflow khác rõ ràng câu hỏi này đã được giải quyết. – ClearCloud8

Trả lời

3

sử dụng $ window.location:

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

không hoạt động trên iOS 9.1 – Sheetal

+0

tính năng này không mở không cần tab trình duyệt mới, trong khi location.open() thực hiện. Có vẻ tốt hơn nếu bạn chắc chắn rằng người dùng cần một ứng dụng thư khách bên ngoài sẽ được mở. – garfunkel61

16

Tiêm $window và sử dụng phương pháp $window.open().

Bên trong bộ điều khiển xác định ...

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

và gọi nó như thế ...

$scope.sendMail("[email protected]","Mail Subject","Mail Body Message"); 
0

này nên mở tab mới cho Google mail hoặc ứng dụng email, tùy thuộc vào các thiết lập người dùng.

Trong góc JS: string CONCATENATE trong điều khiển như vậy:

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

html

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

location.href làm việc quá!

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

Lưu ý: Nếu bạn có một mảng trong $scope.allemails, và bạn sẽ sử dụng phương pháp .join(', ') - Thunderbringer email client sẽ không nhận ra đây là một bộ sưu tập của các email và nó sẽ thêm một dòng mới của 'To:' cho mọi email từ mảng đó.

Các vấn đề liên quan