angularjs – Angular 1.5 $onInit not firing – typescript
发布时间:2020-12-17 17:16:57 所属栏目:安全 来源:网络整理
导读:我正在尝试将Angular 1.5应用程序的部分转换为TypeScript.我没有收到任何错误,但$onInit()方法不再触发.我包括我的代码( JavaScript)和不工作的代码(TypeScript) Javascript版本(工作): angular .module('app') .component('appProductList',{ templateUrl:
我正在尝试将Angular 1.5应用程序的部分转换为TypeScript.我没有收到任何错误,但$onInit()方法不再触发.我包括我的代码(
JavaScript)和不工作的代码(TypeScript)
Javascript版本(工作): angular .module('app') .component('appProductList',{ templateUrl: '/src/product-list/product-list.component.html',controller: ProductListController }); function ProductListController($location,ProductService) { var ctrl = this; ctrl.$onInit = init; ctrl.selectProduct = selectProduct; function init(){ ctrl.products = []; ProductService.getProducts() .then(res => { ctrl.products = res.data; },error => console.log(error)); } function selectProduct(product){ $location.path('/product/' + product.id); } } TypeScript版本($onInit永远不会触发): angular .module('app') .component('appProductList',controller: ProductListController }); class ProductListController{ products: Array<Product>; constructor(private $location: ng.ILocationService,private ProductService: ProductService) {} $onInit() { this.products = new Array<Product>(); this.ProductService.getProducts() .then((res: ng.IHttpPromiseCallbackArg<Array<Product>>) => { this.products = res.data; },error => console.log(error)); } selectProduct(product){ this.$location.path('/product/' + product.id); } } 解决方法
答案,课程不提升,因此必须在引用之前声明.
来自MDN文档:
MDN: Classes (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- scala – List [String]没有来自cats的成员遍历
- twitter-bootstrap – 带有角度指令的可点击bootstrap-date
- twitter-bootstrap – 如何在Meteor 1.3中通过NPM使用boots
- bash – getopts – 如果标志为空,则getopts使用下一个标志
- angularjs controllersAs注册$destroy
- angular – 对于具有大量字段的类/接口,性能影响是什么?
- 如何从shell脚本中止Jenkins构建?
- scala – 将元组与null匹配
- twitter -----bootstrap学习
- vim – 查看Snipmate(cheatsheet)的可用片段