这里的问题是,当我单击按钮时,我在按钮单击方法中设置了一个值,在构造函数中,我声明了该变量,但是我无法在下面获得该值,这是我的代码,并且在构造函数中未定义
public dat = {
"pexels-photo.jpeg": {
"information": "laptop",
"desc": {
"mimetype": "image/jpeg",
"id": "shsj44",
"file_id": "pexels-photo.jpeg"
},
"_id": "shsj44"
}
};
fileid= "";
constructor(){
console.log(this.fileid);
// HERE A URL HAS TO BE CALLED WITH PARAM AS FILEID;
}
getData(){
Object.keys(this.dat).forEach(key => {
var value = this.dat[key];
// console.log(key +':',value["_id"]);
this.fileid = value["_id"];
console.log(this.fileid);
});
}
下面是我的堆叠闪电战:https://stackblitz.com/edit/angular-dr7ehj
我正在声明构造函数bcoz中的变量,我需要在构造函数中使用此值来调用一些信息
答案 0 :(得分:0)
您没有在构造函数中声明变量,只需在构造函数中记录变量的值即可。
由于未分配值,您将在构造函数中获得未定义的信息,请参见下面的代码
fileid='information';
constructor(){
console.log(this.fileid);
}
getData(){
this.fileid = "infomation Updated";
console.log(this.fileid);
}
它会在单击按钮时记录更新的信息。
答案 1 :(得分:0)
它正常工作。未定义console.log的值,因为您没有给它赋值,所以它已被声明但未定义;
您可以在声明它的地方或在构造函数本身内部给它一个初始值;
如果只希望单击时等于“信息”,则要将console.log移至getData()方法,单击该按钮将记录更新的fileId。
请记住,构造函数只会被调用一次,因此,如果要在按下按钮后进行记录,则需要将其移至getData方法。如果您有任何服务或其他任何服务,则可以将它们作为私有参数传递给构造函数,以后可以在getData方法或您拥有的任何其他方法中访问它们。
for (i = 1; i <= 30; i++) {
tracker = parseInt(results.push(prompt("Enter your numbers", 'diceroll')));
}
您还可以利用ngOnChanges在每次特定值更改时触发一些东西
constructor(private service: MyService) {} // dont need to do anything in constructor
getData() {
this.fileId = 'information'
console.log(this.fileId);
this.service(this.fileId); // or some other custom code here
}
在构造函数中调用url的问题最初是未定义参数,因此一开始您将发送无效的url。