Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

BoxGroup使用问题 #513

Open
acelan86 opened this issue Sep 9, 2015 · 9 comments
Open

BoxGroup使用问题 #513

acelan86 opened this issue Sep 9, 2015 · 9 comments

Comments

@acelan86
Copy link

acelan86 commented Sep 9, 2015

场景:
BoxGroup里面是radio,如果radio change的时候弹出confirm,confirm取消的时候需要恢复BoxGroup原来的值,这时候使用setValue依然会触发change

这种情况不应该触发change,一般都是怎么做的?

@Justineo
Copy link
Member

Justineo commented Sep 9, 2015

@otakustay
setValue 触发事件引发的惨剧 + 1

@otakustay
Copy link
Member

首先我想问下 @acelan86 说的情况如果恢复的时候也触发change会有什么样的问题

解决方案上,要不这样,我给控件加个muteEvent方法,无参数暂时禁掉所有事件,有参数则禁掉给定名称的事件,然后这么写

group.muteEvent('change');
group.setValue(2);
group.unmuteEvent('change');

@acelan86
Copy link
Author

就无限循环弹出confirm了,除非我点confirm确定,因为只要取消就需要吧value set回oldvalue,然后就触发change,change的过程又绑定了confirm

我现在就是在confirm的时候先取消绑定了change,然后确定或者取消后重新绑定,但是有点别扭

@acelan86
Copy link
Author

这个问题有解决方案么?

@otakustay
Copy link
Member

上面说的方法你觉得行吗

@acelan86
Copy link
Author

可以倒是可以,但就是感觉手动设置value的不应该触发change,或者增加一个设置不触发事件的方法让这种场景使用?

@otakustay
Copy link
Member

可以直接在setProperty的时候设置一个{silent: true},不过这样可能会有很多地方要支持这个功能,要不就是报一个Issue改一个

Best regards

Gray Zhang

在 2015年9月29日 下午1:45:54, acelan86 ([email protected]) 写到:

可以倒是可以,但就是感觉手动设置value的不应该触发change,或者增加一个设置不触发事件的方法让这种场景使用?


Reply to this email directly or view it on GitHub.

@Justineo
Copy link
Member

我曾经在自己项目的 Pager 里这么改过……

@acelan86
Copy link
Author

acelan86 commented Oct 1, 2015

我先用silent的方法解决了BoxGroup的问题,等升级

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants