簡體   English   中英

角度可觀察響應中不存在屬性映射

[英]property map does not exist on observable response in angular

我正在嘗試使用visual studio 2015應用程序中的typescript構建一個角度2應用程序。 我正在使用角度釋放候選人1。

我創建了一個risk.service組件,它將為我的視圖提供數據。 試圖使用可觀察的。 但是,我在Visual Studio編輯器中收到以下錯誤消息

屬性映射在可觀察的響應中不存在

risk.service.ts

import { Injectable } from '@angular/core';
import { IRisk } from './risk';

import { Http, Response } from '@angular/http';
import 'rxjs/Rx'
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';

@Injectable()
export class RiskService {
    private _riskUrl = 'www.MyService.com/api/risks';
    constructor(private _http: Http) { }

    getRisks(): Observable<IRisk[]> {
        return this._http.get(this._riskUrl)
            .map((response: Response) => <IRisk[]>response.json());
            }

    }

Systemjs.config.js

(function (global) {

    // map tells the System loader where to look for things
    var map = {
        'app': 'app', // 'dist',
        'rxjs': 'node_modules/rxjs',
        'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
        '@angular': 'node_modules/@angular',
        'primeng': 'node_modules/primeng'
    };

    // packages tells the System loader how to load when no filename and/or no extension
    var packages = {
        'app': { main: 'main.js', defaultExtension: 'js' },
        'rxjs': { defaultExtension: 'js' },
        'angular2-in-memory-web-api': { defaultExtension: 'js' },
        'primeng': { defaultExtension: 'js' }

    };

    var packageNames = [
      '@angular/common',
      '@angular/compiler',
      '@angular/core',
      '@angular/http',
      '@angular/platform-browser',
      '@angular/platform-browser-dynamic',
      '@angular/router',
      '@angular/testing',
      '@angular/upgrade',
      '@angular/router-deprecated'
    ];

    // add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
    packageNames.forEach(function (pkgName) {
        packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
    });

    var config = {
        map: map,
        packages: packages
    }

    // filterSystemConfig - index.html's chance to modify config before we register it.
    if (global.filterSystemConfig) { global.filterSystemConfig(config); }

    System.config(config);

})(this);

的package.json

{
  "name": "product-management",
  "version": "1.0.0",
  "author": "Deborah Kurata",
  "description": "Package for the Acme Product Management sample application",
  "scripts": {
    "start": "concurrently \"npm run tsc:w\" \"npm run lite\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server",
    "typings": "typings",
    "postinstall": "typings install"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common": "2.0.0-rc.1",
    "@angular/compiler": "2.0.0-rc.1",
    "@angular/core": "2.0.0-rc.1",
    "@angular/http": "2.0.0-rc.1",
    "@angular/platform-browser": "2.0.0-rc.1",
    "@angular/platform-browser-dynamic": "2.0.0-rc.1",
    "@angular/router": "2.0.0-rc.1",
    "@angular/router-deprecated": "2.0.0-rc.1",
    "es6-shim": "^0.35.0",
    "primeng": "^1.0.0-beta.6",
    "primeui": "^4.1.11",
    "reflect-metadata": "0.1.3",
    "rxjs": "5.0.0-beta.8",
    "systemjs": "0.19.26",
    "zone.js": "^0.6.12"
  },
  "devDependencies": {
    "angular-cli": "^1.0.0-beta.0",
    "clang-format": "^1.0.35",
    "codelyzer": "0.0.14",
    "ember-cli-inject-live-reload": "^1.4.0",
    "es6-promise": "3.2.1",
    "jasmine-core": "^2.4.1",
    "jasmine-spec-reporter": "^2.4.0",
    "karma": "^0.13.15",
    "karma-chrome-launcher": "^0.2.3",
    "karma-jasmine": "^0.3.8",
    "protractor": "^3.3.0",
    "ts-node": "^0.5.5",
    "tslint": "^3.6.0",
    "typescript": "^1.8.10",
    "typings": "^0.8.1"
  },
  "repository": {}
}

您遇到的問題實際上與TypeScript VS加載項和Intellisense有關,而不是Angular2。 這是一個已修補的已知問題,將包含在下一個版本中。

替換文件:C:\\ Program Files(x86)\\ Microsoft Visual Studio 14.0 \\ Common7 \\ IDE \\ CommonExtensions \\ Microsoft \\ TypeScript \\ typescriptServices.js

使用下面的文件。 進行備份后: https//raw.githubusercontent.com/Microsoft/TypeScript/Fix8518/lib/typescriptServices.js

這在技術上是問題的重復(參見Eric Weiss回答):

GitHub問題

我認為您可以嘗試使用5.0x-beta.6版本的Rxjs:

"dependencies": {
  "@angular/common": "2.0.0-rc.1",
  "@angular/compiler": "2.0.0-rc.1",
  "@angular/core": "2.0.0-rc.1",
  "@angular/http": "2.0.0-rc.1",
  "@angular/platform-browser": "2.0.0-rc.1",
  "@angular/platform-browser-dynamic": "2.0.0-rc.1",
  "@angular/router": "2.0.0-rc.1",
  "@angular/router-deprecated": "2.0.0-rc.1",
  "es6-shim": "^0.35.0",
  "primeng": "^1.0.0-beta.6",
  "primeui": "^4.1.11",
  "reflect-metadata": "0.1.3",
  "rxjs": "5.0.0-beta.6", // <-----
  "systemjs": "0.19.26",
  "zone.js": "^0.6.12"
},

正如angular.io網站上的“5min quickstart”文檔所述。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM