AngularJS - 将jQuery函数迁移到有角度的函数

时间:2016-01-22 12:00:50

标签: angularjs

我正在从另一个程序员手中接管一个大型(50多个模块)的AngularJS项目,该项目没有做到,所以我有几个迁移问题:

  1. JS函数有很多用法,比如setTimeout和setInterval。将它更改为$ timeout和$ interval非常容易(因为它们使用相同的语法,所以它只是查找和替换),但我应该打扰吗?
  2. 整个项目没有服务,所有数据请求都在控制器中运行。我是否应该花时间为所有控制器,最重要的控制器或者没有控制器创建服务? (我知道“如果它可以解决它”,但根据你的经验,这会让你的生活更轻松吗?)
  3. 整个项目使用$ .ajax,有超过一千个请求。我没有时间迁移所有使用$ http的请求,但我会尝试一段时间。同时,我应该创建像$ http_o这样的服务,并将所有文件中的所有“$ .ajax(”字符串替换为$ http_o,因此该服务将获得正常的ajax请求语法,并使用$ http服务发送它
  4. 每个控制器的服务都是用变量名写的,而不是在开头用函数(函数($ scope)而不是['$ scope',函数($ scope))。是否有一种快速的方法来改变它们以使用正常的语法,所以我可以使用缩小器,或者我必须手动完成它?我应该这样做吗?
  5. 我显然会尽量在工作时利用正确的MVC和角度规则来修改模块,但这将在未来发生。

1 个答案:

答案 0 :(得分:1)

  1. 它并不像您想象的那样微不足道,即su最后会应用$interval,因此它会触发$rootScope.$apply()周期,有很多间隔可能会减慢app
  2. 关于可读性和可维护性的全部内容。我说是的,做单独的服务并干掉应用程序,否则当你需要在3个月的时间内进行调试它将成为地狱
  3. 智能正则表达式可以为你工作,虽然使用$digest优于$ .ajax的优点是你不必使用技巧来触发视图中的更改 - 即手动运行$ digest或$ apply
  4. 您可以使用https://github.com/olov/ng-annotate
  5. 轻松完成