亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

急求?。。?!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 關注
  • 217 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號