在这个前端框架满天飞的天下,angular MVVM 的模式确实火了一把,所以最近一直在学习ng,感悟颇多,填坑无数,今天终静下心来打算更新自己久未变动的博客,做一做总结。
1、在ng中的观察者模式:
观察者模式已经有很多大牛的说明,不管从宏观或微观上都已概述其思想,这里在简单说明下,使用观察者是对外定义统一开放通知接口,当内部数据或对象发生改变时发送通知,发送给对应的观察者接收,进行业务逻辑的简单操作。在ng中实现观察者模式的基础上是我们建立不同作用域的情况下,总分为父级,子级,兄弟级,强大的ng在不同作用域之间数据传递或事件渲染过程中已经为我们定义好了方法:
$emit只能向parent controller(父级controller)传递event与data
$broadcast只能向child controller(子集controller)传递event与data
$scope.$broadcast("classify.change", { data: {} });//$emit与$broadcast用法相同
$on用于接收event(事件对象,可获取当前作用域,打log输出试一试)与data(参数,可传递多个)
1 $scope.$on('obj.change', function(event, data) {2 //todo excute function
3 (function () { console.log('接收参数') }());4 });
通过这三个参数我们可以很好的将观察者模式运用到项目中,以降低代码耦合度,模块之间各分职能。
2、Demo(基于具体主题观察者模式)
HTML部分:
搜索