2016-04-03 28 views
1

私はこの種の質問が既に尋ねられていることを知っていますが、それらの質問にもすべて言及しましたが、まだ解決できませんでした。 このエラーは、展開時に正確に発生していますimport 'rxjs/add/operator/fromArray';importObservable.fromArrayを除いて、コードは完全に機能します。 私はコンソールに角2:SyntaxError:予期しないトークン<

SyntaxError: Unexpected token <(…) 
Zone.run          @angular2-polyfills.js:1243 
zoneBoundFn         @angular2-polyfills.js:1220 
lib$es6$promise$$internal$$tryCatch   @angular2-polyfills.js:468 
lib$es6$promise$$internal$$invokeCallback  @angular2-polyfills.js:480 
lib$es6$promise$$internal$$publish    @angular2-polyfills.js:451 
lib$es6$promise$$internal$$publishRejection @angular2-polyfills.js:401 
(anonymous function)       @angular2-polyfills.js:123 
Zone.run          @angular2-polyfills.js:1243 
zoneBoundFn         @angular2-polyfills.js:1220 
lib$es6$promise$asap$$flush     @angular2-polyfills.js:262 

app.component.ts

import {Component} from "angular2/core"; 
    import {Observable} from "rxjs/Rx"; 
    import 'rxjs/add/operator/map'; 
    import 'rxjs/add/operator/debounceTime'; 
    import 'rxjs/add/operator/fromArray'; 

@Component({ 
    selector: 'my-app', 
    template: ` 
      <input type="text" class="form-control" placeholder="Search..."> 
      ` 
    }) 

export class AppComponent { 
constructor(){ 
    var startDates = []; 
    var startDate = new Date(); 

    for (var day = -2; day <=2; day++){ 
     var date = new Date(
      startDate.getFullYear(), 
      startDate.getMonth(), 
      startDate.getDate() + day); 
    } 

    startDates.push(date); 

    Observable.fromArray(startDates) 
     .map(date => { 
        console.log('Getting deal for the date ' + date); 
        return [1, 2, 3]; 
        }) 
     .subscribe(x => console.log(x)); 

    } 
} 

インデックスに投げ角度2.0.0-beta.7

エラーによ.html

<html> 
    <head> 
     <title>Angular 2 QuickStart</title> 
     <link rel="stylesheet" href="node_modules/bootstrap/dist/css/bootstrap.css"> 
    <link rel="stylesheet" href="app/styles.css"> 
    <!-- 1. Load libraries --> 
    <!-- IE required polyfills, in this exact order --> 
<script src="node_modules/es6-shim/es6-shim.min.js"></script> 
<script src="node_modules/systemjs/dist/system-polyfills.js"></script> 
<script src="node_modules/angular2/bundles/angular2-polyfills.js"> </script> 
<script src="node_modules/systemjs/dist/system.src.js"></script> 
<script src="node_modules/rxjs/bundles/Rx.js"></script> 
<script src="node_modules/angular2/bundles/angular2.dev.js"></script> 
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
<!-- 2. Configure SystemJS --> 
<script> 
System.config({ 
    packages: { 
     app: { 
      format: 'register', 
      defaultExtension: 'js' 
     } 
    } 
}); 
System.import('app/boot') 
     .then(null, console.error.bind(console)); 
    </script> 
</head> 

<!-- 3. Display the application --> 
    <body> 
    <my-app> 
     Loading... 
    </my-app> 
    </body> 
    </html> 

tsconfig.json

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "system", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
}, 
    "exclude": [ 
    "node_modules", 
    "typings/main", 
    "typings/main.d.ts" 
    ] 
} 

package.json

{ 
    "name": "angular2-quickstart", 
    "version": "1.0.0", 
    "scripts": { 
    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" ", 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "lite": "lite-server", 
    "typings": "typings", 
    "postinstall": "typings install" 
    }, 
    "license": "ISC", 
    "dependencies": { 
    "angular2": "2.0.0-beta.7", 
    "bootstrap": "^3.3.6", 
    "es6-promise": "^3.0.2", 
    "es6-shim": "^0.33.3", 
    "reflect-metadata": "0.1.2", 
    "rxjs": "5.0.0-beta.2", 
    "systemjs": "0.19.22", 
    "zone.js": "0.5.15" 
    }, 
    "devDependencies": { 
    "concurrently": "^2.0.0", 
    "lite-server": "^2.1.0", 
     "typescript": "^1.7.5" 
    } 
    } 
+0

のindex.htmlすなわち '.MAPに' .map'機能を使用してみてください:{rxjs: 'node_modules/rxjs' } ' –

+0

は申し訳ありませんが、私は理解していませんでしたあなたはコードです:) –

+0

私は '.map:{rxjs: 'node_modules/rxjs'}'コードを 'System.config'を定義するindex.htmlファイルに追加しようとします。この回答を見てくださいhttp://stackoverflow.com/a/34440018/5043867 –

答えて

0

私はあなたの代わりに "fromArray" 1の "から" 演算子を使用することができることを考える:

Observable.from(startDates) 
    .map(date => { 
     (...) 
    }); 
0

T fromArray演算子の観測可能なパスからインポートします。

インポート 'rxjs/add/observable/fromArray';ここで

は作業例です:

import {Observable} from 'rxjs/Observable' 
import 'rxjs/add/operator/map' 
import 'rxjs/add/observable/fromArray' 

import {Component} from 'angular2/core'; 

@Component({ 
    selector: 'my-app', 
    template: `` 
}) 
export class AppComponent { 
    constructor() { 
     Observable.fromArray([1, 2, 3]) 
      .map(data => "Value = " + data) 
      .subscribe(x => console.log(x)); 
    } 
} 
関連する問題