当前位置: 首页 > 知识库问答 >
问题:

AngularJS客户端MVC模式?

夹谷鸿福
2023-03-14

关于AngularJS框架,我有几个问题是从我读到的以下引用中得到启发的:

从AngularJS教程:

对于有角度的应用程序,我们鼓励使用Model-View-Controller(MVC)设计模式来解耦代码并分离关注点。

我知道我的问题有些奇怪,但我认为原因是,我对传统的服务器端MVC模式有些敏感。我确信有人已经做了同样的转变。

共有1个答案

石喜
2023-03-14

这并不是一个奇怪的问题--我一直试图向很多java开发人员推销Angular,他们会问这个问题。我在学习的时候就问过(顺便说一句,我还在学习)

如果您采用了前面描述的“常规”java webapp并对其进行了角度化,那么您必须首先使用服务器并使其成为RESTful API。移除JSP等。这实际上是编写一个有角度的应用程序的难点部分--正确处理REST API。我决定服务器需要什么逻辑的关键是把它当作一个纯粹的api,而暂时忘记了它将有一个前端。

这个问题对我很有帮助--如果有人试图保存给定的资源,而该资源没有有效的数据,那么没有前端可以告诉他们--他们直接访问了API,所以API需要拒绝它。因此,后端负责深度验证。这也适用于您的业务逻辑。假设有人只使用了API,那么您的服务器需要做什么就变得很清楚了。

那么MVC的角度是什么呢?

  • 模型:来自REST API的数据。如果API出售JSON,那么这些对象将已经是第一类javascript对象。
  • 在需要操作DOM时查看:HTML和指令
  • 控制器:(以及从控制器中提取的自定义服务..)
    • 查询REST API,并将视图所需的内容放入$scope
    • 为指令提供回调,以响应可能需要回调到服务器的事件。
    • 验证:通常通过对指令的回调。可能会与您已经在服务器中进行的某些验证重叠,但您不希望用户等待服务器验证所有内容--客户端应该了解有关验证的一些信息,以便立即向用户提供反馈。
    • 业务逻辑:与验证基本相同。

    但是为什么客户机和服务器中的逻辑会重复呢?主要是因为您不是在编写一个应用程序,而是在编写两个独立的东西:

      null

 类似资料:
  • 问题内容: 到现在为止,我主要是利用,,用于构建Web应用程序技术堆栈。关键是,提到的堆栈使用服务器端模式。Web浏览器的主要作用仅限于请求/响应周期(+客户端验证)。数据检索,业务逻辑,接线和验证是服务器端的主要职责。 我对 AngularJS 框架有几个疑问,这些疑问是由我阅读过以下引号引起的: 从 AngularJS教程中 : 对于Angular应用,我们鼓励使用Model-View-Con

  • 问题内容: 有没有一种方法可以将angularJS用作SOAP客户端或开发ng SOAP客户端服务? 问题答案: 当然。您所需要做的就是在JavaScript上实现SOAP调用。

  • 我想在一些计算机之间建立点对点连接,这样用户就可以在没有外部服务器的情况下聊天和交换文件。我最初的想法如下: 我在服务器上制作了一个中央服务器插座,所有应用程序都可以连接到该插座。此ServerSocket跟踪已连接的套接字(客户端),并将新连接的客户端的IP和端口提供给所有其他客户端。每个客户端都会创建一个新的ServerSocket,所有客户端都可以连接到它。 换句话说:每个客户端都有一个Se

  • 问题内容: 我试图了解如何执行以下操作: 声明表单的可接受方式是什么。我的理解是,您只需用HTML声明表单,并添加ng-model指令,如下所示: 要发送到服务器的内容。我可以将item对象作为JSON发送到服务器,然后对其进行解释。然后,我可以对对象执行验证。如果失败,则抛出JSON错误,然后发回确切的信息?有接受的方式吗?如何以一种很好的方式将验证错误从服务器推送到客户端? 我确实需要一个示例

  • 我试图了解如何做以下事情: 声明表单的公认方式是什么。我的理解是您只需用超文本标记语言声明表单,然后添加ng-model指令,如下所示: 发送到服务器的内容。我可以将item对象作为JSON发送到服务器,并对其进行解释。然后我可以对对象执行验证。如果失败,我抛出一个JSON错误,并返回具体内容?有没有公认的方法?如何以一种好的方式将验证错误从服务器推送到客户端? 我真的需要一个例子,但是Angul