gpt4 book ai didi

javascript - BreezeJs 功能已经由 AngularJs 实现了吗?

转载 作者:行者123 更新时间:2023-12-02 16:05:40 25 4
gpt4 key购买 nike

建议我使用BreezeJs对于 AngularJs 项目,我发现它有一些非常有趣的 features

就我而言,主要兴趣在于缓存、跟踪更改、一些简单查询和验证。我认为这些功能可以在 AngularJs 中在某种程度上实现,而不需要太多麻烦:

  • 缓存可以通过存储数据来完成,或者 API 调用会产生服务中的对象吗?鉴于服务性质,数据将可在整个应用程序中访问,并且它们将被缓存。
  • 跟踪更改是通过 Angular 和 2 路数据绑定(bind)来完成的。在这里,您可以删除一些 2 向绑定(bind)(Angular 中较少的观察者),但 Breeze 会并行执行该检查。
  • 查询我不需要非常复杂,因此 Angular 过滤器可以完成这项工作。同样的事情也适用于验证,我已经从 Angular 得到了足够多的东西。

对于数据处理,我发现 EntityManager 非常方便。

我的感觉是,对于应用程序来说,不太复杂,您可以直接在 AngularJs 中实现 BreezeJs 提供的几乎所有功能,以一种干净的方式,而不需要再添加一个库。

我在 BreezeJs 中缺少什么?

最佳答案

你几乎错过了一切;-)

Angular 不会做你提到的任何事情。

  • Breeze 缓存可确保实体身份、导航属性的及时维护、实体脏检查、缓存查询等等。 Angular“缓存”中没有这些。

  • Angular 不跟踪实体的更改。它跟踪可见绑定(bind)的更改;如果它不在屏幕上,则不会被跟踪。一旦它不再出现在屏幕上,“跟踪”就消失了。 Angular 中没有模型更改状态的概念。

  • Angular 过滤器用于内存中过滤,而不是查询服务器(或缓存)。

  • Angular 验证纯粹面向 HTML。他们不验证模型。它们不会阻止尝试保存无效实体。他们没有提供任何方法来回答“这个实体或属性是否有效,如果无效,它如何无效?”的问题。使用 ng,您询问的是形式的有效性,而不是实体。它无法帮助您在任何地方强制执行业务规则;您能做的最好的事情就是尝试用每个业务规则适用的验证来装饰每个涉及模型属性的 HTML 元素(这可能意味着为您的自定义验证规则创建自定义指令)。祝你好运。

我根本没有批评 Angular。Angular 专注于组织应用程序以及与 HTML 交互所需的功能。它抛出 $http 来发出服务器请求,但这只是“深入”到模型层。事实上,它非常故意(并且在我看来)没有对模型做出任何假设。因此,它不能做 Breeze 所做的事情,也不应该做。

如果您想更深入地研究,您可以查看 slides I presented at ngConf 2014试图解释 Breeze 的作用以及 Angular 和 Breeze 之间的协同作用。

我不知道您的应用程序是否需要 Breeze。但 Angular 中没有任何东西可以与 Breeze 相媲美。因此,如果您想要 Breeze 中的功能,您有两种选择:

  1. 使用 Breeze
  2. 打造自己的框架,利用 ng 提供的一切资源(其中很少有直接适用的)。

希望能够澄清。

关于javascript - BreezeJs 功能已经由 AngularJs 实现了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30783873/

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