Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular 2 map.set不是一个函数_Javascript_Angular - Fatal编程技术网

Javascript Angular 2 map.set不是一个函数

Javascript Angular 2 map.set不是一个函数,javascript,angular,Javascript,Angular,我正在尝试为我的地图添加一些值。例如,我有以下几点: 我的通讯录课 export class AddressBook { constructor( public social: Map<string, string> = new Map<string, string>(), ) { } } 这是我添加到社交地图的方法 this.addressBook.social.set('Google+','GooglePlusId'); 但是我得到了以下错

我正在尝试为我的地图添加一些值。例如,我有以下几点:

我的通讯录课

export class AddressBook {
  constructor(
    public social: Map<string, string> = new Map<string, string>(),

  ) {
  }
}
这是我添加到社交地图的方法

this.addressBook.social.set('Google+','GooglePlusId'); 
但是我得到了以下错误

caused by: this.addressBook.social.set is not a function
下面是我如何从服务器检索数据

 return this.http.get(this.addressBookURL+address_book_id)
      .map(res => <AddressBook> res.json())
      .catch(this.handleError);

this.addressBookService.getAddressBookFromId(address_book_id)
      .subscribe((res) => {
          this.addressBook = res;

        },
        error => {
          console.log(<any>error);
        });
返回this.http.get(this.addressBookURL+address\u book\u id)
.map(res=>res.json())
.接住(这个.把手错误);
this.addressBookService.getAddressBookFromId(地址簿id)
.订阅((res)=>{
this.addressBook=res;
},
错误=>{
console.log(错误);
});

不知道如何解决这个问题。如果有人能给我指出正确的方向,我将不胜感激。感谢

尝试安装
@types/core js
模块它包含所有es6功能(映射、设置…)的typescript定义:


尝试安装
@types/core js
模块它包含所有es6功能(映射、设置…)的typescript定义:


我猜您没有将正确的参数传递给AddressBook构造函数。 事实上,我猜你是这样做的:

let addressBook= new AdresseBook({
 twitter: "twitterId",
 facebook: "facebookId",
 linkedIn: "linkedinId",
 pinterest: "pinterestId"
 } as any);
虽然您应该传递一个
映射
对象

let map = new Map();
let obj = {
  twitter: "twitterId",
  facebook: "facebookId",
  linkedIn: "linkedinId",
  pinterest: "pinterestId"
};
Object.keys(obj).forEach(key => {
  map.set(key, obj[key]);
});
let addressBook = new AdresseBook(map);
编辑:我是对的(我总是对的),你不能期望一个普通的对象是一个地图:

 return this.http.get(this.addressBookURL+address_book_id)
      .map(res => <AddressBook> res.json()) //here you are just telling the compiler
                                            // that resp.json() is an AdresseBook, but 
                                            // it's not right, it's a plain Object
      .catch(this.handleError);

我猜您没有将正确的参数传递给AddressBook构造函数。 事实上,我猜你是这样做的:

let addressBook= new AdresseBook({
 twitter: "twitterId",
 facebook: "facebookId",
 linkedIn: "linkedinId",
 pinterest: "pinterestId"
 } as any);
虽然您应该传递一个
映射
对象

let map = new Map();
let obj = {
  twitter: "twitterId",
  facebook: "facebookId",
  linkedIn: "linkedinId",
  pinterest: "pinterestId"
};
Object.keys(obj).forEach(key => {
  map.set(key, obj[key]);
});
let addressBook = new AdresseBook(map);
编辑:我是对的(我总是对的),你不能期望一个普通的对象是一个地图:

 return this.http.get(this.addressBookURL+address_book_id)
      .map(res => <AddressBook> res.json()) //here you are just telling the compiler
                                            // that resp.json() is an AdresseBook, but 
                                            // it's not right, it's a plain Object
      .catch(this.handleError);


该项目是使用angular cli生成的,安装@types/core js也没有效果。我需要怎么设置它?感谢这是我接收数据的方式
this.addressBookService.getAddressBookFromId(address\u book\u id).subscribe((res)=>{this.addressBook=res;},error=>{console.log(error);})该项目是使用angular cli生成的,安装@types/core js也没有效果。我需要怎么设置它?感谢这是我接收数据的方式
this.addressBookService.getAddressBookFromId(address\u book\u id).subscribe((res)=>{this.addressBook=res;},error=>{console.log(error);})你的
通讯录是如何构建的?请提供
新地址簿(someData)
部分。这是我的地址簿
导出类地址簿{constructor(public-social:Map=new-Map(),){}
我已经知道。。。。
新地址簿(someData)
部分,请!!!!我已经更新了我的问题,包括如何实例化该类。您的
通讯簿是如何构造的?请提供
新地址簿(someData)
部分。这是我的地址簿
导出类地址簿{constructor(public-social:Map=new-Map(),){}
我已经知道。。。。
新地址簿(someData)
部分,请!!!!我已经更新了我的问题,以包括如何实例化该类。我的AddressBook类看起来像这样
导出类AddressBook{constructor(public social:Map=new Map(),){}
数据来自服务器。我所要做的就是在地图上添加一个新项目。我知道类的外观在你的问题中,我不知道它是如何实例化的
新地址簿(数据)
部分。我已经更新了我的问题,以包括如何实例化类。请看一看。谢谢你,伙计,你说得对。这解决了我的问题。:)我的AddressBook类看起来像这样
导出类AddressBook{constructor(public social:Map=new Map(),){}
数据来自服务器。我所要做的就是在地图上添加一个新项目。我知道类的外观在你的问题中,我不知道它是如何实例化的
新地址簿(数据)
部分。我已经更新了我的问题,以包括如何实例化类。请看一看。谢谢你,伙计,你说得对。这解决了我的问题。:)