angularjs – 当$scope死亡时,angular 1 $scope和Controller as?

既然存在“控制器为”,那么从角度1.2开始就不存在? 2013年底发布?为什么人们,书籍,博客和教程编写了具有$scope的代码,仍然在2015,2014?

我见过在2015年和2016年使用角度1.1或角度1.2编程风格的人有一到两年的经验,他们在角度1.5时丢失了,例如没有使用组件.

乔布斯要求角度只是要求’角度程序员’,他们知道有很大的差异人们以不同的方式使用每个角度,例如使用$scope,或只是指令而不是组件,或者他们不使用ES2015与babel?

我从来没有理解过.真的美元范围何时死亡?
如果这个问题不适用于stackoverflow,我可以在哪里发布它?

最佳答案 范围尚未消亡,可能永远不会死亡.通常认为控制器的功能来替换范围,但事实并非如此.实际上,controllerAs不赞成使用范围的viewmodel职责,在此之前,每个模板的所有viewmodel成员都在组件范围内声明,现在它在组件的类上声明,最后,它成为范围的成员在内部隔离单个范围成员中的viewmodel的所有功能.

使用controllerAs来处理你的viewmodel是一种很好的做法,但你仍然需要做范围,比如说,范围.例如,发出和侦听事件,处理消息循环等.因此,controllerAs将视图模型与实际范围职责分开.因此,范围从未真正消失,只是通过优化功能改变了如何使用它.

无论如何,这并不意味着使用旧的范围方式是坏的或使用控制器而不是组件.高度推荐采用这种做法,在大型项目中,它比小型项目更有意义.此外,旧项目是使用旧的angularjs功能构建的,所以,一个突然的变化,如将整个项目移动到新的方式,因为控制器和组件不是便宜的,特别是在大型项目上.

点赞