如何使用Typescript $ q.when()

时间:2015-12-07 13:39:40

标签: angularjs typescript q definitelytyped

我有一个返回angular.IPromise<any>

的函数
onActivate():IPromise<any>
{
     return Q.when(true);
}

但是当它运行时它会说

  

未定义Q

虽然,当我查看Q.d.ts文件时,会声明模块并导出函数when

如何在打字稿类中使用Q服务?

全班都是这样的:

/// <reference path="../../typings/q/q.d.ts" />
module app.common.modals
{

export class RenameModalCtrl extends app.common.controllers.ControllerBase
{
    public viewModel: RenameModalModel;
    private $modalInstance: ng.ui.bootstrap.IModalServiceInstance;

    static $inject = ['common', '$translate', '$modalInstance', 'viewModel'];

    constructor(common: any, $translate: angular.translate.ITranslateService, $modalInstance: ng.ui.bootstrap.IModalServiceInstance, viewModel: RenameModalModel)
    {
        super(common, $translate);
        this.viewModel = viewModel;
        this.$modalInstance = $modalInstance;
    }

    onActivate(): ng.IPromise<any>
    {
        return Q.when(true);
    }       
}

angular.module('app').controller('renameModalCtrl', RenameModalCtrl);
}

由于

1 个答案:

答案 0 :(得分:3)

你必须在$ inject中添加$ q作为你的一个注射剂。然后将其作为类型Q:ng.IQService

添加到构造函数中

编辑:认为你的意思是角度q。我想你只需要导入模块:

import * as Q from 'q';