angularjs - 在 typescript 中使用延迟

标签 angularjs typescript

我在我的 typescript Controller 中使用 $q.defer 时遇到问题。我得到的错误是 this.$q.defer 不是函数。这是我的 typescript ....

export class AccountWizardController implements IAccountWizardScope {

  account: Account;

  static $inject = ['$q']
  constructor(private $q: ng.IQService) {
  }

  saveState(): ng.IPromise<Account> {
    console.log(this.$q);
    var deferred = this.$q.defer<Account>();
    console.log(deferred);
    return deferred.promise;
  }
}

export interface IAccountWizardScope {
  account: ContractMonitor.Models.Account;
  saveState(): ng.IPromise<Account>;
}

当我在 View 中调用 saveState() 方法时出现错误。这让我完全感到困惑。

谢谢。

最佳答案

$q 一直有 defer ( ref )。所以我的猜测是 this.$qundefined,这是因为你有错误的 this。修复,使用粗箭头来保留上下文:

saveState = (): ng.IPromise<Account> => {
    console.log(this.$q);
    var deferred = this.$q.defer<Account>();
    console.log(deferred);
    return deferred.promise;
}

关于angularjs - 在 typescript 中使用延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31420373/

相关文章:

javascript - vscode 在打开的文件上自动折叠

json - 如何将json对象数组从mysql推送到angularjs中的空数组中

javascript - ng-click 不使用 Controller-As 语法触发

javascript - 使用 ng-click 获取图标表中的位置

node.js - Visual Studio代码: "' tslib' cannot be found"error in Angular project

html - 在 Angular html 模板中访问常量枚举

angular - ionic /Angular 嵌套路由器导出 : routerLinks only work once

node.js - 如何在浏览器中使用 typescript ?

javascript - AngularJS OnsenUI 在子页面的 nav.popPage() 上重新加载父页面

javascript - AngularJS 1.3 路由不起作用; Controller 从未调用过