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

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

 类似资料:
  • 关于AngularJS框架,我有几个问题是从我读到的以下引用中得到启发的: 从AngularJS教程: 对于有角度的应用程序,我们鼓励使用Model-View-Controller(MVC)设计模式来解耦代码并分离关注点。 我知道我的问题有些奇怪,但我认为原因是,我对传统的服务器端MVC模式有些敏感。我确信有人已经做了同样的转变。

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

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

  • URI 方法 URI() string 返回当前客户端使用的服务器地址。 SetURI 方法 SetURI(uri string) 设置当前客户端使用的服务器地址。如果你想要设置多个服务器地址,请使用 SetURIList 方法代替该方法。 URIList 方法 URIList() []string 返回当前客户端可使用的服务器地址列表。 SetURIList 方法 SetURIList(uriL

  • 客户端事件通过 SetEvent 方法进行设置。 客户端事件有两个,它们分别定义为: type onErrorEvent interface { OnError(name string, err error) }   type onFailswitchEvent interface { OnFailswitch(Client) } 因为 go 语言不需要显式实现接口的特点,所以这两

  • 创建客户端有两种方式,一种是直接使用特化的构造器函数,另一种是使用工厂构造器函数。 第一种方式返回的是具体的客户端结构体指针对象,第二种方式返回的是客户端接口对象。 使用特化的构造器函数创建客户端 特化的构造器函数有下面几个: func NewHTTPClient(uri ...string) (client *HTTPClient) func NewTCPClient(uri ...string