关于ion2的构造函数:简单来说,我们使用它来创建我们的插件,服务等的实例,例如:你有一个页面(视图),你想显示所有学生的列表,你有一个json文件包含所有的学生(这个文件是你的数据文件)你要做的是在这个服务中创建一个服务,你将创建一个方法并点击http.get来获取json数据,所以这里你需要什么? http只是这样做:
import {Http} from '@angular/http'; @Injectable() export class StudentService{ constructor(public http: Http){} getAllStudents(): Observable<Students[]>{ return this.http.get('assets/students.json') .map(res => res.json().data) } }
如果我们想要使用这种服务方法,我们将再次看到我们的视图/页面,并再次注意构造函数:
import {StudentService} from './student.service'; import { SocialSharing } from '@ionic-native/social-sharing'; export class HomePage implements OnInit { constructor(public _studentService: StudentService,public socialSharing: SocialSharing) { }
再次注意到这里的构造函数,我们在构造函数中创建了一个StudentService的实例,还有一件事情,我们使用socialSharing插件,以便我们在构造函数中创建实例.
OnInit:这在离子2中真的很神奇,或者我们可以在AngularJs2中说.同样的上面的例子我们可以看到ngOnInit是什么.
所以你准备好了服务方法,现在在你的视图/页面,你希望学生列表数据可以在你的视图出现之后,这应该是第一个操作自动发生加载,因为视图加载学生列表应该是可见的.所以这个类实现了OnInit,你定义了ngOnInit.例:
export class HomePage implements OnInit { ... .... constructor(....){} ngOnInit(){ this._studentService.getAllStudents().subscribe( (students: Students[]) => this.students = students,)
我希望这个解释清楚你对这两个问题的怀疑.谢谢