Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “错误”;TypeError:无法读取属性';电子邮件';“未定义”的定义;使用AngularJS和Ionic_Javascript_Angularjs_Forms_Ionic Framework_Undefined - Fatal编程技术网

Javascript “错误”;TypeError:无法读取属性';电子邮件';“未定义”的定义;使用AngularJS和Ionic

Javascript “错误”;TypeError:无法读取属性';电子邮件';“未定义”的定义;使用AngularJS和Ionic,javascript,angularjs,forms,ionic-framework,undefined,Javascript,Angularjs,Forms,Ionic Framework,Undefined,我使用AngularJS和Ionic生成以下表单: <ion-modal-view class="game" ng-controller="PdfsmtpCtrl"> <ion-header-bar class="bar bar-balanced"> <a class="button button-icon icon ion-close-circled" ng-click=

我使用AngularJS和Ionic生成以下表单:

<ion-modal-view class="game" ng-controller="PdfsmtpCtrl">

  <ion-header-bar class="bar bar-balanced">
    <a class="button button-icon icon ion-close-circled" ng-click="hideInformation()"></a>
    <h1 class="title">PDF-Export per Email</h1>
    <a type="submit" ng-click="getPdf(user)" class="button button-icon icon ion-checkmark-circled"></a>
  </ion-header-bar>

  <ion-content scroll="false" class="game">
        <div>
            <form novalidate class="simple-form">
              <label>E-mail: <input type="email" ng-model="user.email" /></label><br />
              <input type="submit" ng-click="getPdf(user)" value="Save" />
            </form>
        </div>
    </ion-content>

</ion-modal-view>

PDF导出每封电子邮件
电子邮件:
更新:以下是相关的AngularJS代码:

'use strict';

angular.module('app')
.controller('PdfsmtpCtrl', function ($scope, Pdfsmtp)
{   
    $scope.pdfsmtp = new Pdfsmtp();

    $scope.hideInformation = function ()
    {
        $scope.pdfsmtpModal.hide();
    };


    //joey: PDF to generate
    $scope.getPdf = function (user)
    {
        var user = angular.copy(user);
        var emailReceiver = user.email;
        
        var emailSubject = "<SubjectText>";
        var emailBody = "<BodyText>";
        var emailSender = "<EmailAddress>";
        var fileName = "<FileName.pdf>";
        var hostName = "<SenderHostName>";
        var contentType = "application/pdf";
        
     
        var doc = new jsPDF
        ({
            orientation: 'p',    // p = portrait, l = landscape
            unit: 'mm', 
            format: [210, 297],
        });
    
    //joey: Simon Bengtsson and his autotable
    doc.setFontSize(22);
    doc.setTextColor(23, 154, 85);
    doc.text(("<SomeText>"), 14, 15);
    doc.autoTable(
    {
        startY: 30,
        startX: 30,
        headStyles: {fillColor: [25, 141, 79] },
        footStyles: {fillColor: [25, 141, 79] },
        theme: 'grid',
        styles: 
        {
            overflow: 'linebreak',
            lineWidth: 0.5,
            lineColor: [25, 141, 79]
        },
        html: '#resultTable',
    });
    var finalY = doc.lastAutoTable.finalY || 20;
    
    doc.setTextColor(23, 154, 85);
    doc.text('Table:                   Signature:', 14, finalY + 20);
    var blob = doc.output();
    var dataUri = "data:" + contentType + ";base64," + btoa(blob);

    Email.send(
    {
        Host: hostName,
        Username: emailSender,
        Password: "<somepassword>",
        To: emailReceiver,
        Attachments : 
        [{
            name : fileName,
            data : dataUri
        }], 
        From: emailSender,
        Subject: emailSubject,
        Body: emailBody
        }).then($scope.hideInformation());
        //}).then(message => alert(message)
    } 
});
“严格使用”;
角度。模块('app')
.controller('PdfsmtpCtrl',函数($scope,Pdfsmtp)
{   
$scope.pdfsmtp=新的pdfsmtp();
$scope.hideInformation=函数()
{
$scope.pdfsmtpModal.hide();
};
//要生成PDF文件吗
$scope.getPdf=函数(用户)
{
var user=angular.copy(用户);
var emailReceiver=user.email;
var=subject=“”;
var emailBody=“”;
var emailSender=“”;
var fileName=“”;
var hostName=“”;
var contentType=“应用程序/pdf”;
var doc=新的jsPDF
({
方向:“p',//p=纵向,l=横向
单位:毫米,
格式:[210297],
});
//乔伊:西蒙·本特森和他的自动表
文件setFontSize(22);
setTextColor文件(2315485);
文件正文(“),14、15);
自动表格(
{
星期三:30,,
startX:30,
头型:{fillColor:[2514179]},
鞋款:{fillColor:[2514179]},
主题:“网格”,
风格:
{
溢出:“换行符”,
线宽:0.5,
线条颜色:[2514179]
},
html:“#可结果”,
});
var finalY=doc.lastAutoTable.finalY | 20;
setTextColor文件(2315485);
文件文本('表:签名:',14,最终+20);
var blob=doc.output();
var dataUri=“数据:”+contentType+““base64”+btoa(blob);
Email.send(
{
主机名:,
用户名:emailSender,
密码:“”,
收件人:emailReceiver,
附件:
[{
名称:fileName,
数据:dataUri
}], 
发件人:emailSender,
主题:电邮主题,,
正文:emailBody
})。然后($scope.hideInformation());
//})。然后(消息=>警报(消息)
} 
});
单击表单中的
Save
时,一切正常,变量用户将被相关功能接管

单击
中的
提交
图标时,由于变量用户未定义,可看到以下错误:

TypeError:无法读取未定义的属性“email”


需要做什么才能使用
Submit

您应该初始化用户对象。这样,当您尝试访问电子邮件属性时,对象就不会未定义

$scope.pdfsmtp = new Pdfsmtp();
$scope.user = { email : ''};

您应该初始化用户对象。这样,当您尝试访问电子邮件属性时,对象就不会未定义

$scope.pdfsmtp = new Pdfsmtp();
$scope.user = { email : ''};

使用安全导航操作符:
user?.email
。不幸的是,这不起作用。错误消失,但名为user的变量未定义。因此,背后的功能无法完成其工作…它解决了您在帖子中提出的问题。现在,您遇到了一个不同的问题--弄清楚为什么
用户
数据对象是
未定义的
。共享您的typescript代码。这很可能是因为您没有初始化用户,但试图在其中设置属性“email”。尝试将其初始化为空对象。@Tobyoke:我现在也添加了相关的代码部分。希望这能说明问题…使用安全导航操作符:
user?.email
。不幸的是,这不起作用。错误消失,但名为user的变量未定义。因此,背后的功能无法完成其工作…它解决了您在帖子中提出的问题。现在,您遇到了一个不同的问题--弄清楚为什么
用户
数据对象是
未定义的
。共享您的typescript代码。这很可能是因为您没有初始化用户,但试图在其中设置属性“email”。尝试将其初始化为空对象。@Tobyoke:我现在也添加了相关的代码部分。希望这能为这个问题带来启示……太好了,就是这样!非常感谢。太好了,就这样!非常感谢。