首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一个模块内的Angular 6访问服务给出错误‘模块没有导出成员’

在Angular 6中,当一个模块试图访问另一个模块的服务时,可能会遇到错误信息"模块没有导出成员"。这个错误通常是由于以下几个原因引起的:

  1. 未正确导入服务:确保在使用服务之前,正确地将其导入到模块中。在使用服务的组件或模块中,使用import语句将服务导入进来。
  2. 未在模块的providers数组中声明服务:在使用服务的模块中,将服务添加到providers数组中,以便Angular能够正确地创建和注入服务的实例。例如:
代码语言:txt
复制
import { NgModule } from '@angular/core';
import { MyService } from './my-service';

@NgModule({
  providers: [MyService]
})
export class MyModule { }
  1. 服务未正确导出:如果服务定义在一个模块中,并且需要在其他模块中使用,确保在服务所在的模块中将其导出。在服务所在的模块文件中,使用export关键字将服务导出。
代码语言:txt
复制
import { Injectable } from '@angular/core';

@Injectable()
export class MyService {
  // 服务的实现代码
}
  1. 模块未正确导入:如果在一个模块中使用了另一个模块的服务,确保在使用服务的模块中正确地将其导入。在使用服务的模块文件中,使用import语句将服务所在的模块导入进来。
代码语言:txt
复制
import { NgModule } from '@angular/core';
import { MyService } from './my-service';
import { AnotherModule } from './another-module';

@NgModule({
  imports: [AnotherModule]
})
export class MyModule { }

综上所述,当出现"模块没有导出成员"的错误时,需要检查以上几个方面是否正确配置。如果以上步骤都正确无误,但问题仍然存在,可能是由于其他因素引起的。在这种情况下,可以尝试重新构建项目,或者查阅相关文档或社区资源以获取更多帮助。

关于Angular 6的更多信息和相关概念,请参考腾讯云的Angular 6产品介绍页面:Angular 6产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Angular 2 + 折腾记 :(2)初步认识angular2,不一样开发模式

---- 基础概念 国内官网--基础 词汇表(又名计算机术语--angular2 & es6 & es7) 速查表:又名demo写法表,里面涵盖了很多写法,相当于一本小字典 关于ng2一堆为什么:...'@angular/platform-browser'; // 这也是一个装饰器,用来定义模块和组件相关,比如服务,组件元素,指令,导入导出模块识别 // 每个模块定义必须有这个才能生效...,ng2开发模式就是类似一个树,从根节点无限发散 import { NgModule } from '@angular/core'; // 表单模块,比如你要在组件用到一些表单元素或者数据绑定...], providers: [], // 服务 bootstrap: [AppComponent] // 启动模块一个app一般只有一个启动模块!!...哦,还少说了服务这块,看着安排,这些说完之后就直接开搞一些小玩意,比如自定义管道,上传组件,自定义指令这些。。。发现文章有错误,或者有更好讲解,请留言指出,我会及时修正,谢谢!

6.2K20

Angular快速学习笔记(2) -- 架构

imports(导入表) —— 那些导出了本模块组件模板所需其它模块。 providers —— 本模块向全局服务中贡献那些服务创建器。 这些服务能被本应用中任何部分使用。...1.1.3 NgModule 和 JavaScript 模块 NgModule 系统与 JavaScript(ES2015)用来管理 JavaScript 对象模块系统不同,而且也没有直接关联。...其它 JavaScript 模块可以使用import 语句来访问这些公共对象。 NgModule更像一个逻辑上概念,是一个软件包概念。...当 Angular 渲染它们时候,会根据指令给出指示对 DOM 进行转换。 指令就是一个带有 @Directive 装饰器类。...,也就是说,你可以把一个服务注入到组件中,让组件类得以访问服务类。

5.3K20
  • 无需框架,就能实现微前端,理解起来通俗易懂

    为什么需要微前端 假设你正在一个项目中使用一个特定框架或库(比如React.js),但你需要切换到另一个框架或库,或者添加另一个在另一个框架(比如Angular.js)上编写模块。...没有一个微前端,你将不得不重写整个项目或模块,这是一个乏味过程。 另一种情况是,如果你正在处理一个包含多个团队大型项目,那么协作将成为一项任务。...如何构建微前端 现在让我们来看看如何构建一个真正应用,以及如何使用微前端集成两个框架,React和Angular。这里出现一个问题是,我们应该如何划分应用,因为没有特定标准来划分它们。...子应用程序中实现: 要将一个模块导出一个子应用程序,我们必须导出以下生命周期函数: bootstrap——它将被调用一次,就在注册应用程序第一次挂载之前。...文件中为single-spa-angular提供一个mainModule*(Angular模块)、domElementGetter和template。

    2K20

    前端面试知识点

    闭包 一个可以访问一个函数中变量函数。当一个函数返回值是另外一个函数,而返回那个函数如果调用了其父函数内部变量,且返回这个函数在外部被执行就产生了闭包。...nodejs使用是commonjs规范 注意: nodejs虽然原生支持es6 但它并不支持 es6import规范 导入: let xx = require("xxx") 导出: //一个文件只能使用一次...: "text" } es6import规范 方式1 导入: import XXX from "xxx" 导出: export default xxx 该种方式一个文件只能使用一次...export {XXX} 上述导出方式可以在同一个文件使用多次 还有 AMD规范 和CMD规范 什么是观察者模式 也称:发布订阅模式。...组件 服务 管道 什么是依赖注入 如何使用路由 参数快照 参数订阅 响应式编程 angular模板式表单和响应式表单 如何做表单验证 angular-cli使用方式 如何创建组件 创建服务 创建类

    1.6K10

    angular5面试题_大数据面试题

    更多优化技巧,参考 angular绑定(脏检查)方面的性能优化技巧 关于angularModule 什么是angularModule 模块(Module)是一个我们可以对组件(Component...模块通过导出或隐藏这些元素来决定其他模块是否可以使用组件,指令等。 每个模块都使用@NgModule装饰器定义。 Root Module和Feature Module区别。...每个Angular应用程序只能有一个模块(Root Module),而它可以有一个或多个功能模块(Feature Module)。...Module 延迟加载(Lazy-loading) 当一个项目做得很大后,为了提高首屏加载速度,可以通过Lazy-loading,当访问到某些具体url时,才加载那些不常用feature module...选择从哪个版本升级到哪个版本后,会给出一步一步升级命令,直接执行就好。

    4.3K20

    Angular12个经典问题,看看你能答对几个?(文末附带Angular测试)

    Angular 2是一个平台,不仅是一种语言 更好速度和性能 更简单依赖注入 模块化,跨平台 具备ES6和Typescript好处。 灵活路由,具备延迟加载功能 更容易学习 3. ...v=bci-Z6nURgE 6.  什么是延迟加载?如何在Angular 2中启用延迟加载? 大多数企业应用程序包含用各式各样用于特定业务案例模块。...因为shadow DOM本质上是静态,同时也是开发人员无法访问,所以它是一个很好候选对象。因为它缓存DOM将在浏览器中呈现得更快,并提供更好性能。...更少Http请求数:如果应用程序没有捆绑来支持延迟加载(或任何原因),对于每个关联HTML和CSS,都会有一个单独服务器请求。...使用反应式扩展(RxJS) 根据时间变化,数组成员可以异步获取 目前Angular 2正式版已经发布,部分产品也已经对Angular 2正式版进行了支持。

    17.3K80

    Es6模块化Module,导入(import)导出(export)

    ,而且模块必须导出一些外部代码可以访问元素,如变量或者函数,模块也可以从其他模块导入绑定 在模块模块之间特性与作用域关系不大(例如微信小程序或者小游戏中各个文件就是不同模块,在该文件定义变量或者函数只在该文件作用...,而require也是node提供一个私有全局方法,那么在Es6模块中并没有采用node中require导入模块方式 在微信小程序中,暂不支持Es6export和import模块导出与导入语法...一个模块就是一个独立文件,该文件内部所有变量,外部无法获取,同样,任何未显示导出变量,函数或类都是模块私有的,若没有用export对外暴露,是无法从模块外部访问 例如: function countResult...一个重要限制是,他们必须在其他语句和函数之外使用,例如,下面的代码会给出一个语法错误 if(flag){ export flag; // 语法错误 } 下面以在微信小游戏中测试为证 ?...(export必须在函数其他语句之外使用否则会报错) export和import一个重要限制是,他们必须在其他语句和函数之外使用,例如,下面的代码会给出一个语法错误 export语句不允许出现在if

    2.6K20

    【译】《Understanding ECMAScript6》- 第八章-Module

    目前,不论是浏览器还是NodeJS,都没有实现原生ES6 Module支持,但是我们可以期待Module作为一种默认机制被广泛使用。...匿名函数/类不能使用上述语法导出; export不仅可以在声明语句前使用,也可以用在引用前面,如上述代码中multiply; 没有被明确导出变量、函数、class被称为当前模块私有成员,不能被外部代码访问...使用export一个重要限制是,必须在当前模块最顶层作用域使用,否则会抛出语法错误。...请注意导入缺省接口标识符并没有包裹在花括号。...虽然模块内部变量、函数和类并不暴露在全局作用域,但并不意味着模块内部不能访问全局域成员。在某个模块对内置对象(比如Array或Object)进行了扩展修改,其他模块中也会受到影响。

    87260

    Angular4记账webApp练手项目之五(Angular4项目中创建service(服务)和使用http模块

    创建服务模块 ng g service account ng给我们创建模块account.service.ts,内容如下。...@Component表示该js文件所导出类是组件。 @Injectable表示该js文件所导出文件是服务,而服务是可以通过注入来创建。...服务注入,是angular中用来剥离controller和业务逻辑方式。...then(response => console.log(response)); console.log(data); } http.get(url)(或者post put delete),访问服务器以后会返回一个...这里写图片描述 对,会提示,如果使用了类型里没有的字段,还会报错。这活生生把一个弱类型语言变成了强类型。当然如果不喜欢,我们可以不用自定义类。把自定义Result换成any即可。 ?

    1.3K10

    Angular 2 + 折腾记 :(4)初步了解路由及使用

    ,还可以完全不请求(在生命周期里面控制); angular 2 + 里面有两种url风格 一个是常规我们访问url那种protocol://domain/path/f/fds 一种hash(#)风格,...路由相关指令或者术语 :路由占位符,可以理解为渲染路由组件区域,一个组件只能一个无命名,命名可以多个 ng-content: 可以嵌套一个组件内容在另外一个组件中...,访问时候没有带任何子路径情况下 component:'ffff' // 对应组件记得先提前引入 }, { path:'...; @NgModule({ // 注入到模块中,forChild只能用于子模块,forRoot只能用于跟模块 // forRoot有一个可选配置参数,里面有四个选项 // enableTracing...// errorHandler :使用自定义错误处理,来抛出报错信息; imports: [RouterModule.forChild|Root(routes)], // exports是导出组件

    3K20

    JS与ES6高级编程学习笔记(五)——ECMAScript6 代码组织

    图5-10 前端模块规范 3.1、第一个模块 为了让大家快速了解ES6模块化,现在我们在项目的js文件夹下定义第一个模块,并引用该模块,使用模块成员。...(5)、模块都是单例,每一个模块只加载一次,只执行一次,如果下次再去加载相同文件,直接从内存中读取。 (6)、每个模块声明变量都是局部变量,不会污染全局作用域。.../"开始;不需要将所有成员导入,但导入成员必须在导出模块中定义且名称一致,否则将报语法错误。当然可以使用as将导入成员重命名。...3.5、默认导出与导入 每个模块允许默认导出一个成员,导入时可以自定义对象名称,而不需要使用者过多关注导入模块细节,解决了命名对象导出时使用该模块必须清楚知道每个导出成员名称问题,简单说默认导出使模块使用更加方便...7.2、上机任务二(90分钟完成) 上机目的 1、掌握ES6模块定义、导入与导出。 2、掌握ES6模块引用与应用。

    1.6K20

    Angular 2 架构(上)

    (Data Binding) 6、指令 (Directives) 7、服务 (Services) 8、依赖注入 (Dependency Injection) 下图展示了每个部分是如何相互工作: 图中模板...(Templates)是由 Angular 扩展 HTML 语法组成,组件 (Components)类用来管理这些模板,应用逻辑部分通过服务 (Services)来完成,然后在模块中打包服务与组件,...每个 Angular 应该至少要有一个模块(根模块),一般可以命名为:AppModule。 Angular 模块一个带有 @NgModule 装饰器类,它接收一个用来描述模块属性元数据对象。...exports - 声明( declaration )子集,可用于其它模块组件模板 。 imports - 本模块组件模板中需要由其它导出模块。 providers - 服务创建者。...本模块把它们加入全局服务表中,让它们在应用中任何部分都可被访问到。 bootstrap - 应用主视图,称为根组件,它是所有其它应用视图宿主。只有根模块需要设置 bootstrap 属性中。

    1.4K10

    Angular 从入坑到挖坑 - HTTP 请求概览

    在执行服务方法时,有时会存在没有回调函数情况,此时也必须执行 subscribe 方法,否则服务 HTTP 请求是没有真正发起 服务 getAntiMotivationalQuotes...在处理错误信息回调方法中,方法返回了一个 HttpErrorResponse 对象来描述错误信息 因为这里错误更多是服务在与后端进行通信产生错误,因此对于错误信息捕获和处理更应该放到服务中进行,...而在组件处仅显示错误提示 在服务中定义一个错误处理器,用来处理与后端请求中发生错误 import { Injectable } from '@angular/core'; import { Observable...,我们需要添加到根模块 providers 中,因为可能会存在定义多个拦截器情况,这里可以通过定义一个 typescript 文件用来导出我们需要添加拦截器信息 因为会存在定义多个拦截器情况,所以这里需要指定...,在发送请求时会按照我们添加顺序进行执行,而在接受到请求响应时,则是按照反过来顺序进行执行 获取到导出拦截器信息,就可以在根模块中去导入需要注册拦截器 import { BrowserModule

    5.3K10

    作为JavaScript开发人员,这些必备VS Code插件你都用过吗?

    代码检测插件 以最小烦恼高效编写JavaScript代码,需要一个代码检测(linter)工具。它强制团队所有成员遵循特定代码规范。...Node插件 每一个JavaScript项目都需要至少一个Node package,除非你是那种喜欢以艰难方式做事的人。这里有一些VS Code插件,能帮你更容易处理Node模块。...npm:用package.json来校验安装npm包,确保安装包版本正确,对缺少package.json文件包或者未安装给出高亮提示。...Angular 6:提供Angular 6代码片段,支持TypeScript、HTML、Angular Material ngRx、RxJS和Flex Layout。...像ESLint这样插件,帮助你避免代码中常见错误;Debugger for Chrome,帮助你更容易地调试代码;带有智能提示Node.js插件帮助你正确引用模块;像Live Server和REST

    2.9K10

    Angular2 @NgModule

    @NgModule修饰class。 @NgModule利用一个元数据对象来告诉Angular如何去编译和运行代码。...一个模块内部可以包含组件、指令、管道,并且可以将它们访问权限声明为公有,以使外部模块组件可以访问和使用到它们。...模块是用来组织应用,通过模块机制外部类库可以很方便扩展应用,Angular2将许多常用功能都分配到一个模块中,如:FormModule、HttpModule、RouterModule。...(Angular2中没有模块级别的service,所有在NgModule中声明Provider都是注册在根级别的Dependency Injector中) ---- 3.imports:导入其他...---- 4.exports:用来控制将哪些内部成员暴露给外部使用。导入一个module并不意味着会自动导入这个module内部导入module所暴露出公共成员

    2.1K40

    Angular 2.x折腾记 :(2)初步认识angular2,不一样开发模式

    ; // 声明一个public变量并且赋值 } ``` app.module.ts:模块 // 浏览器NG模块 import { BrowserModule } from...'@angular/platform-browser'; // 这也是一个装饰器,用来定义模块和组件相关,比如服务,组件元素,指令,导入导出模块识别 // 每个模块定义必须有这个才能生效...,ng2开发模式就是类似一个树,从根节点无限发散 import { NgModule } from '@angular/core'; // 表单模块,比如你要在组件用到一些表单元素或者数据绑定...], providers: [], // 服务 bootstrap: [AppComponent] // 启动模块一个app一般只有一个启动模块!!..., |是管道,支持多个管道,支持内置管道和自定义管道,:跟随是管道参数,后续文档我写一个如何自定义管道文章 []="":绑定组件值[单向,数据流向视图],指令,原生html控件自身属性[value

    10510

    浅谈HTML5单页面架构(一)——requirejs + angular + angular-route

    大型项目需要考虑代码模块化,模块间低耦合高聚,目的就为了团队合作效率; 可扩展性。这个不用说了。 学习成本。一个框架再好,团队新成员难以掌握,学习难度大,结果很容易造成代码混乱。...这一篇,先说说第1种:requirejs+angular+angular-route 移动端单页面Web相对多页面来说,模块化管理显得非常重要,因为如果没有模块化,页面初始化时就把所有的js和所有模版都加载进来...导入html类型依赖 }, shim: { //引入没有使用requirejs模块写法类库。...这里shim等于快速定义一个模块,把原来全局变量'_'封装在局部,并导出一个exports,变成跟普通requirejs模块一样 underscore: {...而value应该是一个函数,函数写法类似controller,angular会自动根据参数名导入相应依赖服务,例如$q、$route。

    3.3K20
    领券