【问题标题】:Open an Outlook within angular controller在角度控制器中打开 Outlook
【发布时间】:2016-08-01 21:24:57
【问题描述】:

这是有效的:

HTML

<a href="mailto:?subject={{vm.property.address.streetNumber}}, {{vm.property.address.streetName}} {{vm.cityName}} {{vm.stateName}}%20IPL%20#%20{{vm.property.id}}&body={{comment.note}}">@L("CsEmail")</a>

这不起作用:

<a ng-href="{{vm.email}}" ng-click="vm.composeEmail(comment)">@L("CsEmail")</a>

js

vm.composeEmail = function (data) {
vm.email = "mailto:?subject={{vm.property.address.streetNumber}}, {{vm.property.address.streetName}} {{vm.cityName}} {{vm.stateName}}%20IPL%20#%20{{vm.property.id}}&body={{data.note}}";

    // I need to save this here

                };

Q : 我需要在发送邮件后保存数据。因此我不能使用第一个选项。但是第二个选项不起作用。这意味着它没有打开 Outlook。该怎么做?

【问题讨论】:

    标签: angularjs outlook


    【解决方案1】:

    为什么不直接使用作用域变量,像这样:

    vm.email = "mailto:?subject=" + vm.property.address.streetNumber + ", " + vm.property.address.streetName + " " + vm.cityName + " " + vm.stateName + " " + "IPL# " + vm.property.id + "&body=" + data.note;
    

    您是否尝试添加 target="_blank":

    <a ng-href="{{vm.email}}" ng-click="vm.composeEmail(comment)" target="_blank">@L("CsEmail")</a>
    

    【讨论】:

    【解决方案2】:

    也许是一个更好的解决方案:

       <div ng-app="myApp"> 
         <div ng-controller="MyCtrl">
            <a href="mailto:{{email}}"><span>Email {{email}}</span></a> 
        </div> 
      </div>
    
    var myApp = angular.module('myApp',[]);
    var MyCtrl = function($scope) {
        $scope.email = 'bob@bob.com';
        $scope.name = "Bob";
        $scope.cc = "test@test.com";
        $scope.subject = "this is the subject";
    }
    

    希望对你有帮助。

    【讨论】:

    • 不是必须的,这只是示例,你可以将它们连接成一个长字符串。
    • 感谢您的支持 +1。对我来说似乎更多的工作:(@fikkatra 解决方案正在工作。再次感谢。
    【解决方案3】:

    我们从角度控制器中使用它:

    vm.composeEmail = function (data) {
        var email = "mailto:...";
        //save here
        $window.location.href = email;
    };
    

    这样您就可以保存需要保存的任何内容,然后从控制器打开邮件客户端。 html 将如下所示:

    <a ng-href="" ng-click="vm.composeEmail(comment)">@L("CsEmail")</a>
    

    您还需要按照 thegio 的建议拆分“mailto”字符串。

    【讨论】:

      【解决方案4】:

      在“composeemail”功能内打开一个新窗口

      $window.location.href = 'mailto:etc'
      

      并删除ng-href中的值

      【讨论】:

        【解决方案5】:

        在函数内部使用$window.open('mailto:etc');怎么样?

        【讨论】:

          猜你喜欢
          • 2016-04-27
          • 1970-01-01
          • 1970-01-01
          • 2016-07-12
          • 2016-03-08
          • 2015-07-19
          • 1970-01-01
          • 1970-01-01
          • 2023-04-04
          相关资源
          最近更新 更多