我想在我的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库或者我在其他方面的错误?
答案 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
],
...
})