我被建议使用BreezeJs作为AngularJs项目,我发现它有一些非常有趣的features。
在我的情况下,主要的兴趣在于缓存,跟踪更改,一些轻量查询和验证。 我认为这些功能可以在AngularJs的某个级别实现,而不会有太多麻烦:
对于数据处理,我看到 EntityManager 非常方便。
我觉得对于应用程序来说,不是太复杂,你可以用一种干净的方式直接在AngularJs中实现BreezeJs提供的几乎所有东西,而无需再添加一个库。
我在BreezeJs中缺少什么?
答案 0 :(得分:2)
你几乎缺少一切; - )
Angular并没有做你提到的任何事情。
Breeze缓存可确保实体身份,导航属性的即时维护,实体脏检查,缓存查询等等。在Angular" cache"。
Angular不会跟踪实体的变化。它跟踪可见绑定的变化;如果它在屏幕上,则无法跟踪。一旦它不再在屏幕上,"跟踪"离开了。 Angular中没有模型更改状态的概念。
角度过滤器用于内存过滤,而不是查询服务器(或缓存)。
角度验证纯粹是面向HTML的。他们没有验证模型。它们不会阻止尝试保存无效实体。他们没有提供回答问题的方法"这个实体或财产是否有效,如果没有,它是如何无效的?"。通过ng,您可以询问表单的有效性,而不是实体。它无法帮助您在任何地方执行业务规则;您可以做的最好的事情是尝试使用每个业务规则适用的验证来修饰触及模型属性的每个HTML元素(这可能意味着为您的自定义验证规则创建自定义指令)。祝你好运。
我根本没有敲击Angular。 Angular专注于组织应用程序和与HTML交互所需的功能。它会引发$http
来发出服务器请求,但是到目前为止#34}已经下降了#34}。进入模型层。事实上,它非常刻意(并且恰当地IMO)对模型没有任何假设。因此,它不能做Breeze所做的事情,也不应该这样做。
如果你想深入研究一下,你可以看看试图解释Breeze做什么的slides I presented at ngConf 2014以及Angular和Breeze之间的协同作用。
我不知道您的应用程序是否需要Breeze。但Angular中没有任何东西可以与Breeze相提并论。因此,如果你想要Breeze中的功能,你有两个选择:
希望澄清。