根本不是一个奇怪的问题-我一直试图将Angular出售给许多Java开发人员,他们问这个问题。我在学习的时候问过自己(顺便说一句,我还在学习)
如果您按照描述使用了“常规” java webapp并对其进行了角度化,则必须首先使用服务器并将其设为RESTful
API。删除JSP等。这实际上是IMO编写Angular应用程序的难点-正确设置REST API。对于我来说,决定进入服务器所需的逻辑的关键是
将其视为纯API,并暂时忘记它将具有前端 。
这个问题确实帮助了我-如果有人尝试保存给定的资源并且该资源没有有效的数据,则没有前端可以告诉他们-
他们直接攻击了API,因此API需要拒绝它。因此,后端负责深度验证。这也适用于您的业务逻辑。假设有人使用 刚刚 的API,它会变得清晰你的服务器需要做。
服务器还需要以(可能)json格式出售数据(我使用Spring MVC + Jackson),因此服务器负责将模型暴露给Angular,并与数据库进行通信。
那么,Angular端的MVC是什么?
- 模型 :来自REST API的数据。如果API正在出售JSON,则这些对象将已经是1类javascript对象。
- 视图 :HTML和需要操作DOM时的指令
- 控制器 :(以及从控制器中提取的自定义服务。)
- 查询REST API并将所需的View放在$ scope上
- 提供指令的回调,以响应可能随后需要调用服务器的事件。
- 验证:通常通过对指令的回调。 可能会有些重叠,你已经把服务器验证的 ,但你不希望你的用户等待服务器来验证一切-客户应该知道 的东西 有关验证给用户的即时反馈。
- 业务逻辑:与验证几乎相同。
但是,为什么在客户端和服务器中重复逻辑?通常是因为您没有编写一个应用程序,而是在编写两个独立的东西:
- REST API,它需要健壮和可用而没有前端
- 一个GUI,需要立即向用户提供反馈,而不必等待服务器。
因此,简短的答案-通过忘记会有UI来正确使用REST API,Angular中的内容将更加清晰。



