Javascript AngularJs已经实现了BreezeJs功能?

Javascript AngularJs已经实现了BreezeJs功能?,javascript,angularjs,breeze,entitymanager,Javascript,Angularjs,Breeze,Entitymanager,有人建议我使用AngularJs项目,我发现它有一些非常有趣的地方 在我的例子中,主要的兴趣是缓存、跟踪更改、一些简单的查询和验证。 我认为这些功能可以在AngularJs的某个级别上实现,而不会有太多麻烦: 缓存可以通过在服务中的对象中存储数据或API调用结果来实现?考虑到服务的性质,整个应用程序都可以访问数据,并且数据将被缓存 跟踪更改通过双向数据绑定的angular完成。在这里,您可能会放弃一些双向绑定(角度上更少的观察者),但Breeze将并行地进行检查 查询我不需要非常复杂,因此角度

有人建议我使用AngularJs项目,我发现它有一些非常有趣的地方

在我的例子中,主要的兴趣是缓存、跟踪更改、一些简单的查询和验证。 我认为这些功能可以在AngularJs的某个级别上实现,而不会有太多麻烦:

  • 缓存可以通过在服务中的对象中存储数据或API调用结果来实现?考虑到服务的性质,整个应用程序都可以访问数据,并且数据将被缓存
  • 跟踪更改通过双向数据绑定的angular完成。在这里,您可能会放弃一些双向绑定(角度上更少的观察者),但Breeze将并行地进行检查
  • 查询我不需要非常复杂,因此角度过滤器可以完成这项工作。同样的事情也适用于验证,我从Angular获得了足够的信息
对于数据处理,我发现EntityManager非常方便

我觉得,对于不太复杂的应用程序,您可以用AngularJs直接实现BreezeJs提供的几乎所有功能,这种方式非常简洁,无需再添加一个库


我在BreezeJs身上错过了什么?

你几乎错过了一切;-)

Angular没有做你提到的任何事情

  • Breeze缓存可确保实体标识、导航属性的即时维护、实体脏检查、缓存上的查询等。在角度“缓存”中没有这些

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

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

  • 角度验证纯粹面向HTML。他们不验证模型。它们不会阻止保存无效实体的尝试。它们无法回答“该实体或财产有效吗?如果无效,如何无效?”的问题。对于ng,您询问的是形式的有效性,而不是实体的有效性。它不能帮助你在任何地方执行商业规则;您所能做的最好的事情就是尝试用每个业务规则适用的验证(这可能意味着为您的自定义验证规则生成自定义指令)来修饰每个与模型属性接触的HTML元素。祝你好运

我一点也不反对Angular。Angular专注于组织应用程序和与HTML交互所需的功能。它抛出了
$http
来发出服务器请求,但这是模型层的“最底层”。事实上,它相当有意地(而且在国际海事组织看来)不对模型进行任何假设。因此,它不能做微风不应该做的事情

如果你想更深入地研究,你可以看一看,试图解释微风的作用,以及角度和微风之间的协同作用

我不知道你的申请是否需要微风。但在角度上,并没有什么能接近微风。因此,如果您想要Breeze中的功能,您有两个选择:

  • 利用微风
  • 滚动您自己的框架,利用您可以从ng获得的任何东西(其中很少直接适用)

  • 希望澄清。

    声音洪亮清晰。。。非常感谢你的解释,我只是在肤浅的层面上考虑了微风带来的好处。我肯定会用的