2016-03-27 4 views
0

Я хотел добавить трубку для поиска в моем проекте Angular 2, но проблема в том, что когда я включаю созданный канал в журналы браузера компонентов, это показывает мне Неожиданный токен < (..) error , Полный журнал:Angular2 pipes - Неожиданный токен <(..)

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

Вы уверены, что файл, где' SearchPipe' оно называется 'searchpipe'? –

+0

Да, я теперь переместил каталог труб в приложение/трубу, и теперь он загружается, но теперь я получаю сообщение TypeError: Не могу прочитать свойство 'filter' of null .. –

ответ

3

Тип Pipe включен в angular2/core, поэтому добавить больше нечего.

Если есть, то при импорте pipe/searchpipe проблема есть. Вам нужно проверить путь для доступа к этому модулю, откуда вы хотите его использовать.

В большинстве случаев ошибка Unexpected token <(…) возникает при загрузке модуля на 404.

+0

Когда я набираю другой адрес, тогда я получаю 404 в журнале консоли. Поэтому модуль загружается. Я использую Angular 2 (beta 12) –

+0

Я исправил все. По какой-то причине мне нужно было переместить папку pipe в каталог приложения, она не может быть отделена от приложения. –

+1

В моем случае я получил эту ошибку, пытаясь использовать форму Http угловой. На самом деле я забыл импортировать файл http js, как этот ''. – Maxence

1

Некоторая информация о трубах Anglar 2 в настоящее время неверна.

Угловая выпуск 2 удалены декларации недостоверности "Труб в: @Component({ pipes: [YourPipe], ... })

И переехал его (app.module.ts): @NgModule({ ... declarations: [ YourPipe ], ... })

Смежные вопросы