为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

收到一只叮咚 2019-06-09 11:45:47
线上demo:https://stackblitz.com/edit/a...当点击iPhone时,颜色会变蓝色再点一次会变回黑色,这里使用this.betState[selectId]=!this.betState[selectId];然后按删除也可以把iPhone变成蓝色现在问题就是删除没有用我想是因为del()没有抓到正确的变量(this.betState)但是betThis()却抓的到很奇怪困扰很久了有人可以帮忙一下吗为什么del()抓不到正确的变量?bet.tsbetState={};betThis(selectId){this.betState[selectId]=!this.betState[selectId];console.log(this.betState)}del(id){this.betState[id]=falseconsole.log(this.betState)}bet.htmldeletecs.html{{list.test1.qq2[1]}}app.compontent.htmldatatest=[{"test1":{"qq2":["o123","iPhone"],},}]
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

不得不说,你的代码很难理解。直接给你答案:cs.component.html
-
+
bet.component.ts
@Input()bet;
del(id){
this.bet.betState[id]=false
console.log(this.betState)
}
不理解再追问吧
                            
查看完整回答
反对 回复 2019-06-09
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

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

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信