急求!!!!function抓不到正确变量万分感谢

线上demo:https://stackblitz.com/edit/a...
当点击iPhone时,颜色会变蓝色
再点一次会变回黑色,这里使用this.betState[selectId]=!this.betState[selectId];
然后按删除也可以把iPhone变成蓝色
现在问题就是删除没有用
我想是因为del()没有抓到正确的变量(this.betState)
但是betThis()却抓的到很奇怪
困扰很久了
有人可以帮忙一下吗为什么del()抓不到正确的变量?
bet.ts
betState={};
betThis(selectId){
this.betState[selectId]=!this.betState[selectId];
console.log(this.betState)
}
del(id){
this.betState[id]=false
console.log(this.betState)
}
bet.html
delete
cs.html
{{list.test1.qq2[1]}}
app.compontent.html
data
test=[
{
"test1":{
"qq2":["o123","iPhone"],
},
}
]
收到一只叮咚
浏览 201回答 2
2回答

烙印99

不得不说,你的代码很难理解。直接给你答案:cs.component.html-+bet.component.ts@Input()bet;del(id){this.bet.betState[id]=falseconsole.log(this.betState)}不理解再追问吧

叮当猫咪

感谢千年虫愿意看我的代码,原本的代码太复杂,这demo是极简化后的所以很怪哈哈试了你的方法真的管用,厉害了,我的理解是这样你利用父组件去传变量,因为资料是由上传到下,子组件的变更,父组件不会知道,所以利用父组件加个[bet]="betComponent",用父组件传子组件的变量给子组件就正确了这理解正确吗?另外我昨天研读文件后好像想通了有试出另一个解答就是把betState变量改写在最上层的父组件,用父组件去向下传给所有需要的组件然后子组件用@output通知父祖件变更触发变更检测机制再向下通知所有组件变更不过你的方法还是高明许多只能说文件真的要好好读我这里会卡住,看来是因为对angular父子组件传递参数原理的不熟悉
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript