queryModelChange
Closed this issue · 1 comments
xinglie commented
关于queryModelChange
- 当hash改变时,只需要告诉根view,再由根view向子view一层层的传递消息下去
- 当某个view中queryModelChange return false后,则中断消息的传递
目前所遇到的问题
假设如下的界面
┏━━━━━━━━━━━━━━━┓
┃ H ┃
┃ ┃
┣━━━┳━━━━━━━━━━━┫
┃ ┃ ┃
┃ ┃ M┏━━━━━┓ ┃
┃ S ┃ ┃ ┃ ┃
┃ ┃ ┃ Z ┃ ┃
┃ ┃ ┃ ┃ ┃
┃ ┃ ┗━━━━━┛ ┃
┗━━━┻━━━━━━━━━━━┛
- 我们有一个布局layout L
- 我们有H S M Z四个view,其中Z套在M中
- 当hash有改变时,告知L,L来决定是否向H S M发送hash改变的消息
- 有时候我们不需要告知子view,所以我们会通过return false中断消息传递
- 考虑hash改变时,L不需要告诉M H hash有变化,而S需要知道hash有变化,此时如果return false则S无法收到消息,而return true则又违背了M H不需要知道hash有变化的要求
根据遇到的这个问题,考虑return true或false外,提供一个return Array的功能,当返回值是数组是,我们只通知数组包含的view,这样或许能够解决掉这个通知的问题
xinglie commented
通过e.toChildren解决该问题,另外老版本中是采用return Array的方式来解决上述问题