我在我的 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.$q
是 undefined
,这是因为你有错误的 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/