Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 何时使用模块与控制器_Angularjs_Model View Controller_Architecture - Fatal编程技术网

Angularjs 何时使用模块与控制器

Angularjs 何时使用模块与控制器,angularjs,model-view-controller,architecture,Angularjs,Model View Controller,Architecture,我是angluarjs新手,正在尝试构建一个示例应用程序 本应用程序分为3个部分/部分: 地图 B)“接收”-区域 C)“发送”区域 每个部分都有自己的布局/视图区域,不能同时显示 在B.)部分中,您可以通过单击或自动从服务器加载信息,这些信息将在“B.)部分中显示为文本,在“A.)部分中显示为地图标记 此外,您还可以在“A.”部分内单击以设置新标记 在“C.)部分中,有一个发送按钮,用于从“a.)获取新标记,以便将其发送到服务器 目前:所有部分(A、B、C)都是角度模块/自己的应用程序 但我不

我是angluarjs新手,正在尝试构建一个示例应用程序

本应用程序分为3个部分/部分:

地图

B)“接收”-区域

C)“发送”区域

每个部分都有自己的布局/视图区域,不能同时显示

在B.)部分中,您可以通过单击或自动从服务器加载信息,这些信息将在“B.)部分中显示为文本,在“A.)部分中显示为地图标记

此外,您还可以在“A.”部分内单击以设置新标记

在“C.)部分中,有一个发送按钮,用于从“a.)获取新标记,以便将其发送到服务器

目前:所有部分(A、B、C)都是角度模块/自己的应用程序

但我不知道这是否是正确的方法/最佳实践

另一种方式可以是整个页面的单个模块和3个控制器(a、B、C),它们处理a、B和C部分的逻辑


angularjs的正确方法是什么?

根据您的描述,我建议将其设计为一个单独的angularjs应用程序,每个视图都有单独的控制器。听起来,使用angular服务来处理客户端业务逻辑和缓存视图可能使用的任何共享数据/模型会让您受益匪浅。在Angular中,最好的做法是保持控制器非常精简,只关注视图设置/绑定和编排对服务的访问

在寻找获得灵感的方法后,我决定实现以下想法:

对于所有自制的代码,我使用一个模块来完成整个应用程序,对于所有外部的东西,与外部插件和服务捆绑在一起,我使用一个不同的模块。这意味着:每个“服务插件包”(如谷歌API和谷歌地图插件)的pne模块

因此,如果外部服务不工作,我可以切换模块,等等

看看我在问题中的例子,这意味着:

应用部分A:地图和所有特定于地图的东西(设置新标记、绘制圆圈等)都是一个地图模块。如果我决定使用开放街道地图而不是谷歌地图,我将插入一个新的地图模块


应用程序部分A和B:这是我的“主”应用程序模块,具有不同的控制器。

当前,我在部分/模块A完全加载/准备就绪后启动/引导部分B。那么,在“控制器A”(映射)加载并准备就绪之后,我将如何处理“控制器B”的运行呢?默认行为是每个控制器在启动模块时运行,对吗?当遇到指定控制器的任何指令时,控制器将运行。我在这里做了一些假设,但是如果您的数据都是同一个域的一部分,那么您可以使用angular服务封装对数据的访问,并将服务注入到您的控制器中……您可以将每个部分/节包装在一个ng View指令中及其关联的控制器,并根据需要使用角度布线在视图之间导航。该服务将在控制器的实例化之间保持状态,如果需要,您可以在路由中加入逻辑以确保正确的流。我现在选择自己的指令“何时创建新模块vs.控制器”。但+1表示使用服务在控制器/模块之间共享的提示。非常感谢。