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

angularjs 事件执行顺序与预期不一致

angularjs 事件执行顺序与预期不一致

POPMUISE 2019-04-16 20:26:46
http://jsfiddle.net/w86Lzesh/业务流程是这样的,点击框内的按钮,子控制器发送时间到父控制器,改变数据,父控制器改变万数据后回传成功事件给子控制器,子控制器收到后提示用户操作完成。现在遇到问题是点击了按钮后,页面提示用户操作完成,然后才区改变父控制器内的数据,我怎么也没弄明白是为啥
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

例如这种需求,我非常不建议楼主使用事件广播的方法做。而且也不建议控制器嵌套。
angular里面有很多种方法,但由于教程的问题,太多不论不类的教程导致了这种问题。
楼主这类样式css问题的简单的做法
1直接把数据放到@rootScope上。不要事件广播。直接就可以操作@rootScope的属性既可。
2为什么要嵌套控制器?如果每个子控制器的目的是做成一个组件,那么应该封装成directive指令,通过在hmtl标签属性上传值,这也是angular提倡的声明式写法。就是说控制器里面调用的是指令而不是子控制器。
3使用ng-class标签把样式名称写到html标签上,例如ng-class=“{‘cssnamered’:skin=='red'}”这种而不要拼接样式名称。
如果非要用事件广播,这个问题界面没有刷新是因为广播后先执行变量附值,然后在进行第二次广播然后才进行angular的$digest进行界面刷新。$scope.$apply();是强制$digest进行界面刷新
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 441 浏览
慕课专栏
更多

添加回答

举报

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