Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 内存中web api中的多个集合出现错误404_Javascript_Angular_In Memory Database - Fatal编程技术网

Javascript 内存中web api中的多个集合出现错误404

Javascript 内存中web api中的多个集合出现错误404,javascript,angular,in-memory-database,Javascript,Angular,In Memory Database,我正在使用angular in-memory web api模块模拟我的服务器响应。这是内存中的data.service.ts 在我的config.service.ts中,我通过以下代码中的URL访问集合 import { Injectable } from '@angular/core'; import { Headers, Http } from '@angular/http'; import 'rxjs/add/operator/toPromise'; import {ConfigIte

我正在使用angular in-memory web api模块模拟我的服务器响应。这是内存中的data.service.ts

在我的config.service.ts中,我通过以下代码中的URL访问集合

import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';

import {ConfigItem} from './objects/config-item';

@Injectable()
export class ConfigService {

    private configUrl ='api/deviceConfig';
    private fieldbusConfigUrl ='api/fieldbusConfig';


    private headers = new Headers({'Content-Type': 'application/json'});

    constructor(private http: Http) { } 


    getDeviceConfig(): Promise<ConfigItem[]> {
        var test; 
        console.log(this.configUrl);
      test = this.http.get(this.configUrl)
                 .toPromise()
                 .then(response => response.json().data as ConfigItem[])
                 .catch(this.handleError);
      console.log(test);
      return test;
    }

    getFieldbusConfig(): Promise<ConfigItem[]> {
        var test; 
        console.log(this.fieldbusConfigUrl);
      test = this.http.get(this.fieldbusConfigUrl)
                 .toPromise()
                 .then(response => response.json().data as ConfigItem[])
                 .catch(this.handleError);
      console.log(test);
      return test;
    }


    // Handle Errors
    private handleError(error: any): Promise<any> {
        let errMsg = (error.message) ? error.message :
            error.status ? `${error.status} - ${error.statusText}` : 'Server error';
          console.error(errMsg);
     return Promise.reject(errMsg);
    }
}
从'@angular/core'导入{Injectable};
从'@angular/Http'导入{Headers,Http};
导入“rxjs/add/operator/toPromise”;
从“./objects/config item”导入{ConfigItem};
@可注射()
导出类配置服务{
私有配置URL='api/deviceConfig';
私有fieldbusConfigUrl='api/fieldbusConfig';
私有头=新头({'Content-Type':'application/json'});
构造函数(私有http:http){}
getDeviceConfig():承诺{
var检验;
console.log(this.configUrl);
test=this.http.get(this.configUrl)
.toPromise()
.then(response=>response.json().data作为ConfigItem[])
.接住(这个.把手错误);
控制台日志(测试);
回归试验;
}
getFieldbusConfig():承诺{
var检验;
console.log(this.fieldbusConfigUrl);
test=this.http.get(this.fieldbusConfigUrl)
.toPromise()
.then(response=>response.json().data作为ConfigItem[])
.接住(这个.把手错误);
控制台日志(测试);
回归试验;
}
//处理错误
私有句柄错误(错误:任意):承诺{
让errMsg=(error.message)?error.message:
error.status?`${error.status}-${error.statusText}`:'服务器错误';
控制台错误(errMsg);
返回承诺。拒绝(errMsg);
}
}
对于api/deviceConfig URL,它可以正常工作,da按照预期进行检索和显示。对于第二个URL api/fieldbusConfig,我得到一个404错误

尽管在另一个名为application-data.service.ts的服务中

从'@angular/core'导入{Injectable};
从'@angular/Http'导入{Headers,Http};
导入“rxjs/add/operator/toPromise”;
从“/../objects/ProtocolItem”导入{ProtocolItem};
@可注射()
导出类ApplicationDataService{
私有应用程序配置文件='api/applicationConfig';
私有应用程序协议URL='api/applicationProtocol';
私有头=新头({'Content-Type':'application/json'});
构造函数(私有http:http){};
getProtocols():承诺{
var检验;
test=this.http.get(this.applicationProtocolUrl)
.toPromise()
.then(response=>response.json().data作为ProtocolItem[])
.接住(这个.把手错误);
控制台日志(测试);
回归试验;
}
私有句柄错误(错误:任意):承诺{
console.error('发生错误',error);//仅用于演示目的
返回承诺。拒绝(error.message | | error);
}
}
我尝试接收applicationProtocol集合,但由于404错误而失败


我在stackoverflow中搜索了一个解决方案,似乎一切正常。我的错误是什么?

第二个和第三个列表的语法错误。您应该使用“=”而不是“:”


试试这个。

第二个和第三个列表的语法错误。您应该使用“=”而不是“:”

试试这个

import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';

import {ConfigItem} from './objects/config-item';

@Injectable()
export class ConfigService {

    private configUrl ='api/deviceConfig';
    private fieldbusConfigUrl ='api/fieldbusConfig';


    private headers = new Headers({'Content-Type': 'application/json'});

    constructor(private http: Http) { } 


    getDeviceConfig(): Promise<ConfigItem[]> {
        var test; 
        console.log(this.configUrl);
      test = this.http.get(this.configUrl)
                 .toPromise()
                 .then(response => response.json().data as ConfigItem[])
                 .catch(this.handleError);
      console.log(test);
      return test;
    }

    getFieldbusConfig(): Promise<ConfigItem[]> {
        var test; 
        console.log(this.fieldbusConfigUrl);
      test = this.http.get(this.fieldbusConfigUrl)
                 .toPromise()
                 .then(response => response.json().data as ConfigItem[])
                 .catch(this.handleError);
      console.log(test);
      return test;
    }


    // Handle Errors
    private handleError(error: any): Promise<any> {
        let errMsg = (error.message) ? error.message :
            error.status ? `${error.status} - ${error.statusText}` : 'Server error';
          console.error(errMsg);
     return Promise.reject(errMsg);
    }
}
import { Injectable } from '@angular/core';
import { Headers, Http } from '@angular/http';
import 'rxjs/add/operator/toPromise';

import {ProtocolItem} from './../objects/protocol-item';

@Injectable()
export class ApplicationDataService {
    private applicationConfigUrl ='api/applicationConfig';
    private applicationProtocolUrl ='api/applicationProtocol';

    private headers = new Headers({'Content-Type': 'application/json'});

    constructor(private http: Http){};

    getProtocols(): Promise<ProtocolItem[]> {
        var test; 

      test = this.http.get(this.applicationProtocolUrl)
                 .toPromise()
                 .then(response => response.json().data as ProtocolItem[])
                 .catch(this.handleError);
      console.log(test);
      return test;
    }

    private handleError(error: any): Promise<any> {
        console.error('An error occurred', error); // for demo purposes only
        return Promise.reject(error.message || error);
       }
}
let deviceConfig = [
        {
            "itemName": "Device Type",
            "itemValue": "EtnerNet/IP (Script)",
            "editable": false
          },
          {
            "itemName": "Software version",
            "itemValue": "V 4.0",
            "editable": false
          },
          {
            "itemName": "Script revision",
            "itemValue": "37",
            "editable": false
          },
          {
            "itemName": "Serial Number",
            "itemValue": "12341234",
            "editable": true
          },
          {
            "itemName": "Script memory",
            "itemValue": "16320",
            "editable": true
          },
          {
            "itemName": "Data memory",
            "itemValue": "8192",
            "editable": true
          }
];
let fieldbusConfig = [
          {
              "itemName": "IP Adress Unitgate",
              "itemValue": "0.0.0.0",
              "editable": true
          },
              {
              "itemName": "Subnet Mask",
              "itemValue": "0.0.0.0",
              "editable": true
          },
          {
              "itemName": "IP Adress Gateway",
              "itemValue": "0.0.0.0",
              "editable": true
          },
          {
              "itemName": "DHCP",
              "itemValue": "enabled",
              "editable": true
          }
];

let applicationProtocol = [
    {id: 0, value: "transparent"},
    {id: 1, value: "Universal 232"},
    {id: 2, value: "Modbus RTU Master"},
    {id: 3, value: "Modbus RTU Slave"},
    {id: 4, value: "Modus ASCII Master"},
    {id: 5, value: "Modbus ASCII Slave"},
    {id: 6, value: "3964(R)"},
    {id: 7, value: "CS(Pseudo)"},
    {id: 8, value: "Universal Modbus RTU Master"},
    {id: 9, value: "Universal Modbus RTU Slave"},
    {id: 10, value: "Universal ASCII RTU Master"},
    {id: 11, value: "Universal ASCII RTU Slave"}
];
return {fieldbusConfig, applicationProtocol, deviceConfig};
}
}