Typescript和Angular在类的constrcutror中初始化对象,来自其他类类型

时间:2015-06-20 12:16:57

标签: angularjs typescript

我有一个简单的案例让我疯了。

module PaymentType {
    export interface IPaymentTypeScope extends ng.IScope {
        PaymentTypeApprovals: PaymentTypeApproval[];
        FormatDate: Function;

   ....

        AuditTrailDialogObject: AuditTrailDialog;
.....
    }

    export class PaymentTypeController {

        private _: UnderscoreStatic;
        private _scope: IPaymentTypeScope;
        private _log: ng.ILogService;
        private _q: ng.IQService;
        private _paymentTypeService: IPaymentTypeService;
        private _sce: ng.ISCEService;

        constructor($scope: IPaymentTypeScope, $log: ng.ILogService, paymentTypeService: PaymentType.IPaymentTypeService, $q: ng.IQService, $sce: ng.ISCEService) {
            this._paymentTypeService = paymentTypeService;
            this._scope = $scope;
            this._log = $log;
            this._q = $q;
            this._sce = $sce;



      ....
            this.InitialiseScope();
        }

        InitialiseScope = () => {
            this._scope.AuditTrailDialogObject = new AuditTrailDialog();
        }

      .......

我正在尝试在类的方法中有一个类型为AuditTrailDialog的对象。在该方法中,我计划设置该对话框的一些属性,然后将其用于绑定。 这段代码给了我一个错误 - undefined不是初始化对象的函数。 如果我没有初始化对象,我得到一个错误 - 无法设置undefined的属性'Title'。 请帮助我该怎么做,这样我可以使用我班级中另一个班级的对象,然后在控制器中使用它进行角度绑定。 感谢

1 个答案:

答案 0 :(得分:0)

  

这段代码给了我一个错误 - undefined不是初始化对象的函数。

这是一个运行时错误,与您加载JavaScript的方式有关。这取决于答案中没有提供的附加上下文围绕您的代码。我建议您使用类似requirejs的内容并使用--module amd编译typescript而不是手动加载(看似不正确)生成的javascript。另请根据此处记录的--out / module关键字建议:https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md