gpt4 book ai didi

javascript - 将单个 Angular Controller 拆分为多个 JS 文件

转载 作者:行者123 更新时间:2023-12-03 07:19:31 27 4
gpt4 key购买 nike

我正在尝试使用 Angularjs 为我们的金融客户创建一个应用程序。他们需要将整个应用程序放在一个页面中。我说服他们至少使用制表符。但实际问题是应用程序有近 2000 个字段,其中一半是根据输入和数据库中的一些数字计算的。

我使用几个 Controller 隔离了应用程序。但是考虑到所有的计算,每个 Controller 仍然是巨大的。

  1. 有没有办法把一个Controller拆分成多个JS文件?
  2. 我们使用 KnockoutJS 为同一客户开发了类似的应用程序。使用 KO 的 observables 和 Computed features 这相当容易。还是留在 KO 更好?想象一下跨 Controller 进行所有计算似乎非常困难。

请提出建议。

最佳答案

Angular 的设计不错,但它很容易被误用。 Angular 没有对模型或继承提出任何建议(你只能自己使用 JS 原型(prototype)和 POJO,以及用于混合的 extendcopy)一点帮助也没有。

如果您具有 OOP 语言现代 MVC 框架的背景,您可能熟悉“瘦 Controller ,胖模型”的概念。在 Angular 中,它是“瘦 Controller ,胖服务”(毕竟它不是 MVC,而是 MVW 框架)。

如果您要将一些函数分离到单独的对象(文件?)中,那么它就可以使用了 service(很可能是 factory)。将 Angular 服务视为适合 DI 模式的普通对象(模型、实用程序类、异步服务等)。

看到过去几年 Angular 良好实践的发展情况非常有趣。其中之一是将 Controller 用于他们唯一擅长的事情——从服务获取数据并将其放入范围,并使用 $scope.$... 函数,它有助于避免 scope soup

我喜欢的另一个 recent conception(受 Web 组件影响)是用指令替换 Controller (ng-controller 本身是一个指令,它只为您提供 Controller ,因此得名)。后者可以提供更高级别的封装(通过隔离作用域)和 Controller 互操作(使用 require)。

我花了一些时间才弄明白,但如果你不得不与 Angular 斗争,你可能做错了什么。

关于javascript - 将单个 Angular Controller 拆分为多个 JS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29827298/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com