Javascript 为什么我的数组没有定义?
嘿,伙计们,我有点麻烦了。 我有一个对象数组和两个函数,但其中一个数组是未定义的。 因此,我的职能如下:Javascript 为什么我的数组没有定义?,javascript,arrays,angular,Javascript,Arrays,Angular,嘿,伙计们,我有点麻烦了。 我有一个对象数组和两个函数,但其中一个数组是未定义的。 因此,我的职能如下: getTarget() saveChanges() addUser() 绘图台() 恩戈尼尼特() 我正在尝试console.log在所有这些函数中记录我的数组,除了getTarget()函数,一切都正常!它只是将未定义的记录到控制台中,而其他函数的输出类似于(2)[对象,对象] 为什么阵列不可访问或出现了什么问题 这是我的应用程序代码: import {Component, OnIn
- getTarget()
- saveChanges()
- addUser()
- 绘图台()
- 恩戈尼尼特()
我正在尝试
在所有这些函数中记录我的数组,除了console.log
函数,一切都正常!它只是将未定义的getTarget()
记录到控制台中,而其他函数的输出类似于
为什么阵列不可访问或出现了什么问题(2)[对象,对象]
import {Component, OnInit} from '@angular/core';
var ID:number;
export class entity {
id:number;
name:string;
lName:string;
}
let USERS: entity[] = [
{id: 0, name: 'Jon Smith', lName: 'Last Name'},
{id: 1, name: 'qwe asd', lName: '123'}
];
@Component({
selector: 'my-app',
templateUrl: './template.html',
})
export class AppComponent implements OnInit{
name = 'Angular';
Users = USERS;
/*deleteUser () {
console.log(ID);
delete this.Users[ID];
this.drawTable();
}*/
getTarget() {
let Target = event.target;
let id = $(<HTMLButtonElement>Target).parent().parent().attr('id');
console.log('номер',id);
console.log(this.Users);
ID = parseInt(id);
//console.log($(<HTMLButtonElement>Target).text());
if ($(<HTMLButtonElement>Target).text()=='Удалить'){
/*this.Users = this.Users.slice(ID,1);
this.drawTable();*/
console.log(this.Users);
}
}
saveChanges(id:number) {
id = ID;
$(<HTMLButtonElement>event.target).attr('data-dismiss', 'modal'); //Закрыть модальное окно
$('#editErrorMessage').attr('style','visibility:hidden');//сделать сообщение об ошибке невидимым
if (($('#editNameInput').val() != '' ) && ($('#editLNameInput').val()!='')) {
this.Users[id].name = $('#editNameInput').val();//сохранить новые значения
this.Users[id].lName = $('#editLNameInput').val();
$('#editNameInput').val('');//очистить
$('#editLNameInput').val('');//инпуты
this.drawTable();
}
else {
$(<HTMLButtonElement>event.target).removeAttr('data-dismiss');// не закрывать модальное окно
$('#editErrorMessage').removeAttr('style');//сообщение снова видно
}
}
addUser() {
$(<HTMLButtonElement>event.target).attr('data-dismiss', 'modal'); //Закрыть модальное окно
$('#addErrorMessage').attr('style','visibility:hidden');//сделать сообщение об ошибке невидимым
if (($('#addNameInput').val() != '' ) && ($('#addLNameInput').val() != '' ))
{
let tempObj:entity = {id: this.Users.length, name: $('#addNameInput').val(), lName: $('#addLNameInput').val()};
this.Users.push(tempObj);
$('#addNameInput').val('');
$('#addLNameInput').val('');
this.drawTable();
}
else {
$(<HTMLButtonElement>event.target).removeAttr('data-dismiss');// не закрывать модальное окно
$('#addErrorMessage').removeAttr('style');//сообщение снова видно
}
}
drawTable() {
console.log('drawing', this.Users);
let Table = $('table');
let tBody = $('tbody');
console.log(this.Users.length);
tBody.empty();
//элементы таблицы
/*for (let rowIndex = 0; rowIndex == this.Users.length - 1; rowIndex++) {
console.log(rowIndex);
console.log(this.Users[rowIndex]);
row.dataset.id = this.Users[rowIndex].id.toString(); // установить id строки
cell.innerHTML = this.Users[rowIndex].id.toString(); // текст внутри ячейки
row.appendChild(cell); // добавить ячейку в ряд
cell.innerHTML = this.Users[rowIndex].name;
row.appendChild(cell);
cell.innerHTML = this.Users[rowIndex].lName;
row.appendChild(cell);
cell.innerHTML = ''; // убрать текст из ячейки
editButton.className = 'crud__DeleteEditButton form-control'; //настройка кнопки изменения
editButton.setAttribute('data-toggle', 'modal');
editButton.setAttribute('data-target', '#editModal');
editButton.setAttribute('onclick','getTarget()');
editButton.innerHTML = 'Изменить';
cell.appendChild(editButton); // добавить кнопку в ячейку
row.appendChild(cell);
deleteButton.className = 'crud__DeleteEditButton form-control'; //настройка кнопки удаления
deleteButton.setAttribute('onclick','deleteUser()');
deleteButton.innerHTML = 'Удалить';
cell.appendChild(deleteButton);
tBody.appendChild(row); //добавить строку в таблицу
};*/
for (let item of this.Users){
console.log('start');
let row = document.createElement('tr');
let cells = [];
let editButton = document.createElement('button');
let deleteButton = document.createElement('button');
row.setAttribute('id',item.id.toString()) // установить id строки
let cell1 = document.createElement('th');
cell1.innerHTML = item.toString(); // текст внутри ячейки
cells.push(cell1);
console.log(cells);
let cell2 = document.createElement('th');
cell2.innerHTML = item.name;
cells.push(cell2);
console.log(cells);
let cell3 = document.createElement('th');
cell3.innerHTML = item.lName;
cells.push(cell3);
console.log(cells);
editButton.className = 'crud__DeleteEditButton form-control'; //настройка кнопки изменения
editButton.setAttribute('data-toggle', 'modal');
editButton.setAttribute('data-target', '#editModal');
editButton.innerHTML = 'Изменить';
let cell4 = document.createElement('th');
cell4.appendChild(editButton);
cells.push(cell4);
console.log(cells);
deleteButton.className = 'crud__DeleteEditButton form-control'; //настройка кнопки удаления
//deleteButton.addEventListener('click',this.deleteUser,false)
deleteButton.innerHTML = 'Удалить';
let cell5 = document.createElement('th');
cell5.appendChild(deleteButton);
cells.push(cell5);
console.log(cells);
for (let tempCell of cells){
console.log('appending');
row.appendChild(tempCell);
}
row.addEventListener('click',this.getTarget,false)
tBody.append(row); //добавить строку в таблицу
}
Table.append(tBody); // добавить тело к таблице
console.log('drawing done');
}
ngOnInit ():void {
this.drawTable();
}
}
从'@angular/core'导入{Component,OnInit};
var-ID:number;
导出类实体{
id:编号;
名称:字符串;
lName:字符串;
}
允许用户:实体[]=[
{id:0,名称:'Jon Smith',lName:'Last name'},
{id:1,名称:'qwe asd',lName:'123'}
];
@组成部分({
选择器:“我的应用程序”,
templateUrl:“./template.html”,
})
导出类AppComponent实现OnInit{
名称='角度';
用户=用户;
/*删除用户(){
console.log(ID);
删除此。用户[ID];
这个.drawTable();
}*/
getTarget(){
让Target=event.Target;
让id=$(Target.parent().parent().attr('id');
控制台日志(id为);
console.log(this.Users);
ID=parseInt(ID);
//log($(Target.text());
如果($(目标).text()='Уааааа'){
/*this.Users=this.Users.slice(ID,1);
这个.drawTable()*/
console.log(this.Users);
}
}
保存更改(id:编号){
id=id;
$(event.target).attr('data-disease','modal');//
$('editErrorMessage').attr('style','visibility:hidden');//
如果($('editNameInput').val()!='')和($('editNameInput').val()!=''){
this.Users[id].name=$('editNameInput').val()//
this.Users[id].lName=$('#editLNameInput').val();
$('editNameInput').val('')///
$('editLNameInput').val('')//
这个.drawTable();
}
否则{
$(event.target).removeAttr('data-disease');//
$('editErrorMessage').removeAttr('style');//
}
}
addUser(){
$(event.target).attr('data-disease','modal');//
$('addErrorMessage').attr('style','visibility:hidden');//
如果($('addNameInput').val()!='')和($('addNameInput').val()!='')
{
让tempObj:entity={id:this.Users.length,name:$('addNameInput').val(),lName:$('addNameInput').val();
this.Users.push(tempObj);
$('#addNameInput').val('');
$('#addLNameInput').val('');
这个.drawTable();
}
否则{
$(event.target).removeAttr('data-disease');//
$(“#addErrorMessage”).removeAttr('style');//бббббббб
}
}
绘图台(){
console.log('drawing',this.Users);
let Table=$('Table');
设tBody=$('tBody');
console.log(this.Users.length);
tBody.empty();
//элементы таблицы
/*for(让rowIndex=0;rowIndex==this.Users.length-1;rowIndex++){
console.log(rowIndex);
console.log(this.Users[rowIndex]);
row.dataset.id=this.Users[rowIndex].id.toString();//
cell.innerHTML=this.Users[rowIndex].id.toString();//
行。附加子项(单元格);//
cell.innerHTML=this.Users[rowIndex].name;
子行(单元格);
cell.innerHTML=this.Users[rowIndex].lName;
子行(单元格);
cell.innerHTML=“”;//
editButton.className='crud__DeleteEditButton表单控件';//
setAttribute('data-toggle','modal');
setAttribute('data-target','#editmodel');
setAttribute('onclick','getTarget()');
editButton.innerHTML='imk 9зззззззз;
cell.appendChild(编辑按钮);//
子行(单元格);
deleteButton.className='crud__DeleteEditButton表单控件';//
setAttribute('onclick','deleteUser()');
deleteButton.innerHTML='Уааааа';
cell.appendChild(deleteButton);
t正文.附录儿童(世界其他地区);//ббббббббббб
};*/
for(让此.Users的项){
console.log('start');
让row=document.createElement('tr');
let cells=[];
让editButton=document.createElement('button');
让deleteButton=document.createElement('button');
row.setAttribute('id',item.id.toString())//
设cell1=document.createElement('th');
row.addEventListener('click',this.getTarget,false)
row.addEventListener('click',this.getTarget.bind(this),false)
row.addEventListener('click', () => this.getTarget(),false)