ngOnInit 中的引用错误
Reference Error inside ngOnInit
我在控制台上收到一条错误消息,在我定义并排序后显示 ERROR ReferenceError: sortedArr is not defined
。
这是我的 app.component.ts 文件:
import { Component } from '@angular/core';
import { HttpClient, OnInit } from '@angular/common/http';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
title = 'Contacts';
contacts: any[] = this.contacts;
constructor (private httpClient: HttpClient) {}
ngOnInit(): void {
//Pull JSON data from REST API
this.httpClient.get('***URL TO JSON DATA***')
.subscribe((data) => {
this.contacts = data;
//Sort JSON object
let arr = this.contacts;
let sortedArr = arr.sort( (a, b) => {
return (typeof a.name === 'string') - (typeof b.name === 'string') || a.name - b.name || a.name.localeCompare(b.name);
}););
console.log(sortedArr);
});
}
已排序的对象数组已绑定到我的网络应用页面上的 HTML,但它不在控制台中。当我刚刚定义并排序这个数组时,为什么我会得到一个 ReferenceError?
我问的真正原因是因为我需要对这个对象数组做一些不同的事情,以使其与我的 HTML 正确配合。它允许我通过我编写的函数对其进行排序,但我无法在 sortedArray
变量上调用另一个方法,因为它说它未定义。
您从错误的库中导入了 OnInit
import { HttpClient } from '@angular/common/http';
改为:
import { Component, OnInit } from '@angular/core';
打字错误:);
--> 删除它,它将起作用 let
关键字将变量范围限制在块内,由于打字错误 );
您无法访问它在块的范围之外。
ngOnInit(): void {
//Pull JSON data from REST API
this.httpClient.get('***URL TO JSON DATA***')
.subscribe((data) => {
this.contacts = data;
//Sort JSON object
let arr = this.contacts;
let sortedArr = arr.sort( (a, b) => {
return (typeof a.name === 'string') - (typeof b.name === 'string') || a.name - b.name || a.name.localeCompare(b.name);
}););--> remove it
console.log(sortedArr);
});
}
我在控制台上收到一条错误消息,在我定义并排序后显示 ERROR ReferenceError: sortedArr is not defined
。
这是我的 app.component.ts 文件:
import { Component } from '@angular/core';
import { HttpClient, OnInit } from '@angular/common/http';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
title = 'Contacts';
contacts: any[] = this.contacts;
constructor (private httpClient: HttpClient) {}
ngOnInit(): void {
//Pull JSON data from REST API
this.httpClient.get('***URL TO JSON DATA***')
.subscribe((data) => {
this.contacts = data;
//Sort JSON object
let arr = this.contacts;
let sortedArr = arr.sort( (a, b) => {
return (typeof a.name === 'string') - (typeof b.name === 'string') || a.name - b.name || a.name.localeCompare(b.name);
}););
console.log(sortedArr);
});
}
已排序的对象数组已绑定到我的网络应用页面上的 HTML,但它不在控制台中。当我刚刚定义并排序这个数组时,为什么我会得到一个 ReferenceError?
我问的真正原因是因为我需要对这个对象数组做一些不同的事情,以使其与我的 HTML 正确配合。它允许我通过我编写的函数对其进行排序,但我无法在 sortedArray
变量上调用另一个方法,因为它说它未定义。
您从错误的库中导入了 OnInit
import { HttpClient } from '@angular/common/http';
改为:
import { Component, OnInit } from '@angular/core';
打字错误:);
--> 删除它,它将起作用 let
关键字将变量范围限制在块内,由于打字错误 );
您无法访问它在块的范围之外。
ngOnInit(): void {
//Pull JSON data from REST API
this.httpClient.get('***URL TO JSON DATA***')
.subscribe((data) => {
this.contacts = data;
//Sort JSON object
let arr = this.contacts;
let sortedArr = arr.sort( (a, b) => {
return (typeof a.name === 'string') - (typeof b.name === 'string') || a.name - b.name || a.name.localeCompare(b.name);
}););--> remove it
console.log(sortedArr);
});
}