构造函数,ionViewDidLoad和ngOnInit方法之间有什么区别.在每种情况下哪些行动是适当的.
就 ionic2 而言 constructor :简单来说,我们使用它来创建插件、服务等的实例。例如:您有一个页面(视图),您想要在其中显示所有学生的列表,并且您有一个 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)
}
}
Run Code Online (Sandbox Code Playgroud)
现在再次注意构造函数,如果我们想使用此服务方法,我们将转到我们的视图/页面并:
import {StudentService} from './student.service';
import { SocialSharing } from '@ionic-native/social-sharing';
export class HomePage implements OnInit {
constructor(public _studentService: StudentService, public socialSharing: SocialSharing) {
}
Run Code Online (Sandbox Code Playgroud)
再次注意这里的构造函数,我们正在构造函数中创建 StudentService 的实例,还有一件事,我们正在使用 SocialSharing 插件,以便使用我们也在构造函数中创建该实例。
OnInit:这在 ionic2 中确实是令人惊奇的事情,或者我们可以在 AngularJs2 中说。通过上面相同的例子,我们可以看到事实是什么ngOnInit。因此,您已准备好服务方法,现在在您的视图/页面中,您希望在视图出现时立即提供学生列表数据,这应该是加载时自动发生的第一个操作,因为当视图加载学生时列表应该是可见的。所以类实现OnInit并且你定义ngOnInit。例子:
export class HomePage implements OnInit {
...
....
constructor(....){}
ngOnInit(){
this._studentService.getAllStudents().subscribe(
(students: Students[]) => this.students = students,
)
Run Code Online (Sandbox Code Playgroud)
我希望这个解释能消除您对这两者的疑虑。谢谢
| 归档时间: |
|
| 查看次数: |
3883 次 |
| 最近记录: |