【问题标题】:Is it safe to integrate MVVM [angularjs,knockout.js]in MVC [JSF/spring]在 MVC [JSF/spring] 中集成 MVVM [angularjs,knockout.js] 是否安全
【发布时间】:2014-03-13 21:50:16
【问题描述】:
将 MVVM [angularjs,knockout.js] 与 MVC [JSF/spring] 结合使用是一种好习惯吗?
- 这是从 JSF 页面内部控制 mvvm 对象/变量/的好方法吗?
假设我必须通过使用 jsf 控制器来更新 angularjs 模型中的下拉列表来获取列表对象并更新 angularjs 下拉模型。这是一种干净的方式还是垃圾方式,还是只是一种解决方法。
【问题讨论】:
标签:
angularjs
jsf
jakarta-ee
model-view-controller
mvvm
【解决方案1】:
我不得不承认我并不真正了解 JSF 或 Knockout。但是,我可以很容易地想象,因为双方都想负责查看组件,所以像 JSF 或 Wicket 这样的基于组件的框架可能无法与 Angular 一起使用。我想到了几件事:
- 为什么需要服务器端的组件框架?为什么不使用像 Spring MVC 或 struts 这样的基于请求的框架?它们应该可以正常工作,因为它们只是负责整个页面的加载。
- 如果您决定使用一种技术来做一件事,您可能会没事的。例如,用 JSF 做你的页面容器,用 Angular 做页面内的所有东西。我想你会没事的。当然,您正在失去 JSF 的大部分优势。
【解决方案2】:
我现在实际上正在这样做。我不能说最佳实践是什么,但我们发现我们需要能够从服务器输出动态 HTML,即使您在前端有一个 MVVM 框架。像国际化这样的事情在服务器端处理得更好,而使用来自服务器的纯静态 HTML 会遇到很多限制。
主要缺点是复杂性。您将在服务器上拥有控制器、模型和视图,并在客户端上结合控制器、模板和视图模型。这使得架构有点混乱,尤其是当您将新成员带入团队时,因此文档和代码结构变得非常重要。
总的来说,我认为这是一种有效的方法。它还没有咬我们,至少:)