gpt4 book ai didi

angularjs - 这么多缺失的部分。接下来看哪里?

转载 作者:行者123 更新时间:2023-12-03 21:30:48 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

8年前关闭。




Improve this question




学习 Angular 是一个非常令人沮丧的过程。几周前,我刚刚开始了这条无尽之路的旅程。我已经浏览了official tutorial在 angular 网站上,观看了 egghead.io 上的前 40 多个视频并阅读其他几个教程和示例。我是 Angular 新手,但在 javascript、jQuery 和淘汰赛方面拥有丰富的经验,但即使在我经历了所有研究和示例之后,我仍然无法拼凑出最简单的 Angular 应用程序现实世界的情况。

问题是这些教程和示例中的大多数都试图展示 Angular 的所有不同部分,包括 Controller 、指令、过滤器、服务、$http/$resource、路由、动画等。所以你最终会得到这一两个 Controller 应用程序没有任何实质内容,但它包含所有这些功能的基础知识。现在,去掉 $resource、路由和动画等简单应用程序不需要的所有功能,并为业务逻辑和数据管理添加实质内容,您很快就会看到这些教程中存在多少漏洞.

例如,一个教程将展示如何使用服务在 Controller 之间共享数据。它将创建 Controller ,并使用服务从使用 $http 或 $resource 的服务器获取数据。然后它会显示即使对数据的请求是异步的,也很少需要回调,因为数据绑定(bind)将只是空的,直到数据到达然后神奇地填充。现在你有一个可重用的服务来获取数据你所有的 Controller 。

哇!一切都如此简单和干净,而且很有效! Angular 太棒了!然后,当然,当您编写一个需要多个 Controller 的实际应用程序时,并且这些 Controller 都依赖于相同的数据,并且您添加了一种称为“业务逻辑”的东西,它也共享并使用了这些数据,您立即意识到事情并不是那么简单。

首先,一旦您添加了必须使用来自服务器的数据的业务逻辑(就像任何真正的应用程序一样),您没有回调的干净代码就会被破坏。您现在必须在任何地方实现回调,因为您必须等待数据到达才能使用它。其次,原型(prototype)范围继承变得不可靠,因为您不知道来自其他 Controller 的数据是否已经加载。最糟糕的是,这些教程中没有任何关于如何在 Controller 之间以及与服务器之间保持数据同步的内容。如果数据在一个 Controller 的范围内被修改,那么所有其他 Controller 范围也需要更新......

这些只是即使使用一个甚至不使用路由的非常简单的应用程序也会引入的一些复杂性。我正在尝试制作一个不保留数据的简单计算器,但我被所有这些问题和疑问所困扰,找不到任何真正的解决方案。

有人可以为我指出一个好的教程、示例或书籍的正确方向,它们将填补这些缺失的漏洞,而不会进入我的应用程序不需要的复杂的 Angular 部分?

在此先感谢并为咆哮感到抱歉,这非常令人沮丧:/

最佳答案

我远非 angularJS 专家,实际上我也在学习中。但是,我们的第一个 angularJS MVP 工作几乎完成了,所以也许我可以分享一些我的经验。这是我学到的一些模式

  • 您的 Controller 应该是极简主义的,并调用服务和工厂。
  • Controller 操作由 $emit 触发和 $broadcast这就是让一切保持同步的原因。我的 Controller 只有 $scope.$on('onCustomAction',function(event,params){ $scope.myObject.doSomething(); }) 的列表.理想情况下,它应该是这些的极简列表。
  • 在 ng-click 中,你应该有像 myObject.fancyMethod() 这样的方法。在哪里 myObject是“$scope”的一部分。
  • 将具有自己的小 Controller 的小块可重用 html 放入指令中。我已经很晚了,但我开始有一些了。
  • 对需要移动的大段 html 使用 ng-include(即:模态窗口、主要内容、侧边栏等)。
  • 请记住,如果它不在 $scope 中,它也可能不存在。
  • 服务可以调用其他服务,并且可以用于单例和实例化对象。它们应该是您代码的核心。

  • 希望这可以帮助。随意争论这些项目。

    关于angularjs - 这么多缺失的部分。接下来看哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22415908/

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