问题标签 [angular2-modules]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - 除了设计简单之外,在 Angular2 中使用多个模块有什么好处?
是否有助于减少加载时间?(例如仅将当前模块加载到客户端设备?)
我的理解是……
- 它会增加服务器和客户端之间的请求数量吗?
- 它会增加你的代码的复杂性。(因为你需要照顾
- 导入和导出模块,并且在路由中也要特别注意)
angular - Angular2: separation all services to one module
I have my own applicaton, written in Angular2, consist of several modules. To keep order in code, I found that I should isolate all services (for communication with API) to separate module.
I wonder if it's good idea? Can it have an impact on loading time or size my app? Could this be other negative effects? If so, why? And what are the best practices to dividing application on modules.
Thanks.
angular - 私有组件的用例
我正在尝试为私有组件提出一个简单的用例,并在这里。假设我有HelloWorldAppModule
一个包含一个公共组件和一个私有组件的模块:
正如你所看到的,这个模块只导出HelloWorldComponent
,但是,在使用的模板HelloWorldComponent
内部PrivateComponent
。这应该可以正常工作,因为这两个组件都在declarations
.
然后,我创建了另一个UsesHelloWorldModule
导入的模块,HelloWorldAppModule
因此,据我所知,我可以在注册的指令模板中使用它导出的组件HelloWorldAppModule
。所以这里是:
但是,我也使用了未导出<private>
的组件。HelloWorldAppModule
那么会发生什么?<private></private>
解析标签时,角度会引发错误,我对吗?
编辑:
另外,如果只在里面使用会发生什么UsesHelloWorldComponent
:
请注意,它<private>
在其模板中使用。
感谢任何评论,因为网络上没有太多私有组件的示例。
angular - 在 Angular 2.4 中,无法将功能模块从不同的项目导入到主项目
我有两个项目,一个是主项目,第二个项目是共享项目。在共享项目中,我创建了一个名为 NavBar 的功能模块。
我们之所以分成不同的项目,是为了让我们可以在不同的项目中复用 NavBar 模块。
我想通过使用将 NavBar 功能模块导入主项目
不幸的是,我收到一个错误,说它尝试使用 get 方法导入
(SystemJS) XHR 错误 (404 Not Found) 加载http://localhost/ShareProject/app/shared/navbar/navbar.module
我可以问一下这样做的正确方法吗?
angular - Angular 2 使用模块而不导入它
这听起来可能很愚蠢,但我想知道是否有一种方法可以将一个模块导入一次,并使其可用于所有子模块。
例如,我想在我的所有模块中使用 MaterialModule。目前,我必须在每个模块中导入它,声明它,然后我才能使用它。
我试过只把它放在app模块中,导出它,但它似乎没有效果。
所以我的问题是:是否可以在 app 模块中声明一个模块,以便我们可以使用它而不在子模块中声明它?
angular - 在 angular2 中的延迟加载模块之间共享一个外部模块
我的应用程序的组件使用重量级的外部包(ag-grid,大约 1MB),它作为 angular2 模块(AgGridModule
)提供。我只想在需要使用它的组件时才加载这个包,所以我的ContentModule
和它的所有子模块都是延迟加载的。整个结构如下所示:
但是,当我AgGridModule
同时导入Submodule1
andSubmodule3
时,它最终被包含在编译的 JS 中两次,使 1.chunk.js 和 3.chunk.js 都变大了。我尝试将其导入ContentModule
,但子模块无法识别其中包含的组件AgGridModule
,即使我将它们列exports
在ContentModule
.
有没有办法在延迟加载的模块之间共享一个模块,或者将导入模块的某些组件暴露给延迟加载的子模块?
UPD:创建一个共享模块并将其导入子模块没有帮助,仍然有两个大约 1MB 的块:
UPD2:我通过将 Submodule1 和 Submodule3 合并到一个模块中暂时解决了这个问题。
angular - Angular 2 - 如何将参数传递给抽象服务
Angular 2 - 当我在模块中提供服务时如何将参数传递给抽象服务
带有抽象服务的文件
我提供服务时带模块的文件
使用服务时带有组件的文件。
我提供服务时需要传递 baseUrl。
angular - 如何获取 Angular 2 中当前模块的元数据?
我想获取当前NgModule的元数据,以便获取列表declarations
并providers
填写我创建的动态模块,以在模态中显示组件。
怎么可能呢?
angular - Angular——在哪里提供服务?
如果我想在一个模块中隔离服务,我应该为模块创建一个根组件,并providers
在这个组件上使用(如所述文档)。
如果我providers
在模块上使用,服务将成为应用程序级别。因此,这是提供应用程序级服务的一种方式(如示例中所做的那样)。
但是,接下来,文档说:
不要在共享模块中指定应用程序范围的单例提供程序。导入该共享模块的延迟加载模块将制作自己的服务副本。
所以,我们不应该使用providers
模块来提供共享服务。那么,我们应该使用什么?应用模块providers
?我们应该在 AppModule 中提供所有共享服务吗?什么时候应该使用providers
功能模块?
看起来,模块提供程序是共享的,但您不应该将它们用作共享。怎么回事?
angular - Ng2 延迟加载模块中的延迟加载模块依赖项
我有editor.module
两个延迟加载的模块 a.module
和b.module
. 它喜欢将编辑器从 app.module 中移开。是否有可能将第三个延迟加载模块定义为andeditor.module
的延迟加载依赖项。哪个先加载会加载编辑器模块?a.module
b.module