Angular2管道 - 意外的令牌<(..)

时间:2016-03-27 13:50:54

标签: angular angular2-routing angular2-directives

我想在我的Angular 2项目中添加搜索管道,但问题是当我将创建的管道包含到组件浏览器日志中时,会显示出意外的令牌<(..)错误。 完整日志:

    angular2-polyfills.js:332 
Error: SyntaxError: Unexpected token <(…)
ZoneDelegate.invoke @ angular2-polyfills.js:332Zone.run @ angular2-polyfills.js:227(anonymous function) @ angular2-polyfills.js:576Z
oneDelegate.invokeTask @ angular2-polyfills.js:365Zone.runTask @ angular2-polyfills.js:263drainMicroTaskQueue @ angular2-polyfills.js:482ZoneTask.invoke @ angular2-polyfills.js:434

这是我的管道代码:

    import {Pipe} from 'angular2/core';

@Pipe({
  name: 'SearchPipe'
})

export class SearchPipe {

   transform(items: any[], args: any[]): any {
        return items.filter(item => item.name.indexOf(args[0]) != -1);
   }
}

这是组件代码。

 import { Component, Directive } from 'angular2/core';
import {Http, HTTP_PROVIDERS} from 'angular2/http';
import {SearchPipe} from 'pipe/searchpipe';
import 'rxjs/Rx';


@Component({ 
  pipes: [SearchPipe],
  selector: 'MainPage', 
  templateUrl: 'app/mainpage/mainpage.html'
})

export class MainPageComponent { 
    korisnici: Object[];
    constructor(http: Http){
        http.get('korisnici.json')
        .map(res => res.json())
        .subscribe(korisnici => this.korisnici = korisnici);
    }
}

上次我在使用http时没有添加http.dev.js库时发生了这些错误。是否有一些用于包含管道的JS库或者我在其他方面的错误?

2 个答案:

答案 0 :(得分:3)

Pipe类型已包含在angular2/core中,因此无需添加任何内容。

话虽如此,导入pipe/searchpipe时可能存在问题。您需要检查从您要使用它的位置到达此模块的路径。

大多数情况下,加载模块时,404上会出现错误Unexpected token <(…)

答案 1 :(得分:1)

有关管道的一些Anglar 2信息目前不正确。

Angular 2发布删除了管道&#39;声明: @Component({ pipes: [YourPipe], ... })

并将其移至(app.module.ts): @NgModule({ ... declarations: [ YourPipe ], ... })