承诺返回后angularjs控制器成员未定义
我在控制器中有一个方法,它执行以下代码:承诺返回后angularjs控制器成员未定义,angularjs,typescript,Angularjs,Typescript,我在控制器中有一个方法,它执行以下代码: this.StockService.GetByInvoicesID(this.SelectedInvoice.ID).success((StockItems) => { this.StockItems = StockItems; this.CreditNoteStockItems = new Array<ViewModels.CreditNoteStockItemViewModel>(); } 编辑2:它生成的java
this.StockService.GetByInvoicesID(this.SelectedInvoice.ID).success((StockItems) =>
{
this.StockItems = StockItems;
this.CreditNoteStockItems = new Array<ViewModels.CreditNoteStockItemViewModel>();
}
编辑2:它生成的javascript
CreditNoteModalController.prototype.InvoicesSelectionChanged = function () {
var _this = this;
this.StockService.GetByInvoicesID(this.SelectedInvoice.ID).success(function (StockItems) {
_this.StockItems = StockItems;
_this.CreditNoteStockItems = new Array();
});
};
谢谢你在评论帖子里来回转述了几次之后,发现这里发生了两件事,所以将信息整合到答案中:
此
可能不是成功手柄中您认为的那样。您能演示一下如何定义和使用此控制器吗?我在帖子中添加了有关控制器的更多信息。@charlietfl,TypeScript在箭头函数表达式中重新定义引用此的代码。当转换为JavaScript类型时,脚本将在调用之前添加一个声明var\u this=this
,然后箭头函数变成\u this.StockService
,应该可以工作。请发布更多的CreditNoteController
。上面的代码究竟是如何进入CreditNoteController
的?如果你把它完全按照上面所说的那样放在上面所说的位置上,你最终会得到无效的打字脚本。它需要包装在一个方法中。请同时发布相关生成的JavaScript。这个
被翻译成了\u这个
应该是这样的吗?
this.ModalService.open(
{
templateUrl: URL,
controller: Controllers.CreditNoteController,
});
CreditNoteModalController.prototype.InvoicesSelectionChanged = function () {
var _this = this;
this.StockService.GetByInvoicesID(this.SelectedInvoice.ID).success(function (StockItems) {
_this.StockItems = StockItems;
_this.CreditNoteStockItems = new Array();
});
};