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
Javascript 为什么我的angular 2服务在我的应用程序中不可见?_Javascript_Angularjs_Json_Angular - Fatal编程技术网

Javascript 为什么我的angular 2服务在我的应用程序中不可见?

Javascript 为什么我的angular 2服务在我的应用程序中不可见?,javascript,angularjs,json,angular,Javascript,Angularjs,Json,Angular,我试图通过angular服务读取JSON文件。 当我不使用该服务时,我可以轻松地读取JSON数据并将其绑定到变量中。 但当我使用服务执行此操作时,它不起作用。 其显示以下错误: Failed to load resource: the server responded with a status of 404. 我确信我写的路径是正确的 目录结构 代码如下: app.component.ts 从'angular2/core'导入{Component}; 从'angular2/Http'导入

我试图通过angular服务读取JSON文件。 当我不使用该服务时,我可以轻松地读取JSON数据并将其绑定到变量中。 但当我使用服务执行此操作时,它不起作用。 其显示以下错误:

Failed to load resource: the server responded with a status of 404.
我确信我写的路径是正确的

目录结构

代码如下:

  • app.component.ts
  • 从'angular2/core'导入{Component};
    从'angular2/Http'导入{Http,Response};
    从'rxjs/Rx'导入{Observable};
    从“../services/data.service”导入{DataService};
    @组成部分({
    选择器:“我的应用程序”,
    提供者:[数据服务],
    templateUrl:'app/app.component.html'
    })
    导出类AppComponent{
    公开记录;
    构造函数(私有数据服务:数据服务){}
    恩戈尼尼特(){
    this.dataService.getDetails()
    .订阅((客户:任何[])=>{
    该记录=客户;
    });              
    }  
    
    }
    服务文件夹应位于应用程序文件夹下。根据SystemJS配置,使用此配置仅加载此文件夹下的资源:

    System.config({
      (...),
      packages: {
        app: { format: 'register', defaultExtension: 'js' },
        (...)
      }
    });
    format: 'register', defaultExtension: 'js'
    
    这意味着SystemJS将自动尝试使用
    js
    扩展加载模块

    因此,结构应如下所示:

    project
      - app
        - app.component.ts
        - main.ts
        - services
          - data.service.ts
    
    app.component.ts
    文件中,您可以使用以下方法导入服务:

    import {DataService} from './services/data.service';
    
    根据其配置,SystemJS将尝试加载
    localhost:3000/app/services/data.service.js
    ,如果TypeScript编译器以前执行过它的工作,则该文件应该存在;-)


    Thierry

    服务
    文件夹应位于
    应用程序
    文件夹下。根据SystemJS配置,使用此配置仅加载此文件夹下的资源:

    System.config({
      (...),
      packages: {
        app: { format: 'register', defaultExtension: 'js' },
        (...)
      }
    });
    format: 'register', defaultExtension: 'js'
    
    这意味着SystemJS将自动尝试使用
    js
    扩展加载模块

    因此,结构应如下所示:

    project
      - app
        - app.component.ts
        - main.ts
        - services
          - data.service.ts
    
    app.component.ts
    文件中,您可以使用以下方法导入服务:

    import {DataService} from './services/data.service';
    
    根据其配置,SystemJS将尝试加载
    localhost:3000/app/services/data.service.js
    ,如果TypeScript编译器以前执行过它的工作,则该文件应该存在;-)


    蒂埃里

    我不确定我是否理解你的问题。您认为Angular没有找到服务(如问题标题所示)还是服务无法获取json文件?请求的URL是什么以及它实际应该是什么?angular 2无法找到服务。虽然我已经正确地编写了路径。因为我在其他项目中以相同的方式使用了服务,所以它们在@GünterZöchbauery正常工作。您的路径似乎是有效的。你能分享更多的信息,比如SystemJS或Webpack配置,或者你的存储库或plunker?你能提供完整的错误信息吗?我的意思是哪个资源加载失败。。。谢谢我想问题可能来自您的相对路径(
    “../uicomponent.json”
    )…我不确定我是否理解您的问题。您认为Angular没有找到服务(如问题标题所示)还是服务无法获取json文件?请求的URL是什么以及它实际应该是什么?angular 2无法找到服务。虽然我已经正确地编写了路径。因为我在其他项目中以相同的方式使用了服务,所以它们在@GünterZöchbauery正常工作。您的路径似乎是有效的。你能分享更多的信息,比如SystemJS或Webpack配置,或者你的存储库或plunker?你能提供完整的错误信息吗?我的意思是哪个资源加载失败。。。谢谢我想问题可能来自您的相对路径(
    “../uicomponent.json”
    )。。。