Angular 模块封装概念常见的错误分析理解

 更新时间:2023年07月27日 10:03:17   作者:JerryWang_汪子熙  
这篇文章主要为大家介绍了Angular模块封装概念常见的错误分析理解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

Angular引入模块封装概念

Angular 以类似于 ES 模块的方式引入了模块封装的概念。

它基本上意味着可声明的类型——组件、指令和管道——只能由在该模块内声明的组件使用。

例如,如果我尝试使用下面的代码在 App 模块的 App 组件内使用 A 模块中的 a-comp

@Component({
  selector: 'my-app',
  template: `
      <h1>Hello {{name}}</h1>
      <a-comp></a-comp>
  `
})
export class AppComponent { }

错误消息

Template parse errors: ‘a-comp’ is not a known element

这是因为 App 模块中没有声明 a-comp。 如果我想使用这个组件,我需要导入定义这个组件的模块。解决方案如下:

@NgModule({
  imports: [..., AModule]
})
export class AppModule { }

这就是封装发挥作用的地方:A 模块必须通过将 a-comp 添加到 exports 数组来将其声明为在其他 module 内可用:

@NgModule({
  ...
  declarations: [AComponent],
  exports: [AComponent]
})
export class AModule { }

大多数 Angular 新手认为 Providers 也有封装,这种想法是错误的。可以在应用程序内的任何位置访问在任何非延迟加载模块中声明的 Providers.

Modules hierarchy

关于 imported modules 的最大困惑是开发人员认为这些被导入的 Modules 在应用运行时维护了一种层次结构,并且假设导入其他模块的模块成为被导入模块的父模块。

然而,事实并非如此。所有模块在编译阶段合并。因此,导入的模块和导入的模块之间没有层次关系。

所需命名空间之一被定义为默认命名空间。 此命名空间的控制标记不需要前缀。

<View> 标签是必需的,在上面的示例中,核心命名空间在第一行定义。 当然开发人员可以定义任何名称。 例如,为了使标签名称更短,还可以使用 c 而不是 core.

以上就是Angular 模块封装概念常见的错误分析理解的详细内容,更多关于Angular 模块封装概念分析的资料请关注脚本之家其它相关文章!

相关文章

  • Angularjs实现带查找筛选功能的select下拉框示例代码

    Angularjs实现带查找筛选功能的select下拉框示例代码

    这篇文章主要介绍了Angularjs实现带查找筛选功能的select下拉框的详细过程及示例代码,文中通过示例介绍的很详细,相信会对大家学习使用Angularjs具有一定的参考借鉴价值,有需要的朋友们可以一起来看看。
    2016-10-10
  • Angular.JS实现无限级的联动菜单(使用demo)

    Angular.JS实现无限级的联动菜单(使用demo)

    这篇文章主要介绍了Angular.JS中实现无限级联动菜单的使用示例,本文是在之前的一篇文章的基础上进行的几个demo分享,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-02-02
  • 深入浅析Angular SSR

    深入浅析Angular SSR

    Angular Universal 主要关注将 Angular App 如何进行服务端渲染和生成静态 HTML,对于用户交互复杂的 SPA 并不推荐使用 SSR,本文是在 Angular 14 环境中完成,有些内容对于新的 Angular 版本可能并不适用,感兴趣的朋友一起通过本文学习
    2022-11-11
  • Angular JS数据的双向绑定详解及实例

    Angular JS数据的双向绑定详解及实例

    这篇文章主要介绍了Angular JS数据的双向绑定详解及实例的相关资料,需要的朋友可以参考下
    2016-12-12
  • Angular2.0/4.0 使用Echarts图表的示例代码

    Angular2.0/4.0 使用Echarts图表的示例代码

    本篇文章主要介绍了Angular2.0/4.0 使用Echarts的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • AngularGauge 属性解析详解

    AngularGauge 属性解析详解

    本文主要介绍AngularGauge 属性的知识,这里这里了详细的资料来介绍AngularGauge属性的内容知识,帮助大家学习参考,有需要的小伙伴可以参考下
    2016-09-09
  • Angular中管道操作符(|)的使用方法

    Angular中管道操作符(|)的使用方法

    通常我们需要使用管道实现对数据的格式化,下面这篇文章主要给大家介绍了关于Angular中管道操作符(|)的使用方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-12-12
  • AngularJS中scope的绑定策略实例分析

    AngularJS中scope的绑定策略实例分析

    这篇文章主要介绍了AngularJS中scope的绑定策略,结合实例形式简单分析了AngularJS scope的三种绑定模式的使用方法与相关注意事项,需要的朋友可以参考下
    2017-10-10
  • Angular 向组件传递模板的两种方法

    Angular 向组件传递模板的两种方法

    这篇文章主要介绍了Angular 向组件传递模板的两种方法,第一种方式<ng-content>第二种方式是NgTemplateOutlet 指令及各种使用方式介绍,需要的朋友可以参考下
    2018-02-02
  • angularjs中回车键触发某一事件的方法

    angularjs中回车键触发某一事件的方法

    下面小编就为大家带来一篇angularjs中回车键触发某一事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04

最新评论