复制对象的JavaScript数组不起作用

时间:2018-07-14 00:17:32

标签: typescript angular6

根据我的研究,它似乎应该可以正常工作,但它不起作用。我在哪里错过了重点,或者我不知道什么?

这是我的代码:

import { Menu } from '../../../menu.model';

@Component({
    selector: 'app-top-menu',
    templateUrl: './top-menu.component.html',
    styleUrls: ['./top-menu.component.scss']
})
export class TopMenuComponent implements OnInit {
    menuList: Menu[] = [];
    constructor(private mb: MessageServiceBus) {}

    ngOnInit() {
        this.mb.subjTopMenu.subscribe((mnu: Menu[]) = {
/* 16 */    console.log(mnu);
/* 17 */    this.menuList = mnu.slice();
/* 18 */    this.menuList = mnu.slice(0);
/* 19 */    mnu.forEach(el => {
/* 20 */        this.menuList.push(el);
/* 21 */    });
/* 22 */    console.log(this.menuList);    
        });
    }
}

问题出在 ngOnInit 方法中。

  • 第16行:如调试控制台中所示显示正确的数据
  • 第17行和第18行:查看它们中的任何一个是否将复制到menuList
  • 第18-21行:查看是否会复制
  • 第22行:查看menuList的值-显示未定义!

请帮助。

1 个答案:

答案 0 :(得分:0)

实际上,这是可行的-但是在VS Code调试中检查变量时不起作用。我认为实例变量超出了范围