我一直在使用Dart作为语言从Angular2站点跟随英雄之旅,当我尝试使用大写管道时出错:
Build error:
Transform TemplateCompiler on angular2_tour_of_heroes|lib/heroes_component.ng_meta.json threw error: Template parse errors:
The pipe 'uppercase' could not be found ("
这是我的heroes_component.html
文件:
<h2>My Heroes</h2>
<ul class="heroes">
<li *ngFor="let hero of heroes"
[class.selected]="hero == selectedHero"
(click)="onSelect(hero)">
<span class="badge">{{hero.id}}</span> {{hero.name}}
</li>
</ul>
<div *ngIf="selectedHero != null">
<h2> {{selectedHero.name | uppercase}} is my hero </h2>
<button (click)="gotoDetail()">View Details</button>
</div>
这不是什么大问题,但我想知道为什么会这样。我在Linux上使用pub版本1.18.1和Dart VM版本:1.18.1。
为了完整性,这是我的pubspec文件:
name: angular2_tour_of_heroes
description: Tour of heroes
version: 0.0.1
environment:
sdk: '>=1.13.0 <2.0.0'
dependencies:
angular2: 2.0.0-beta.18
browser: ^0.10.0
dart_to_js_script_rewriter: ^1.0.1
transformers:
- angular2:
platform_directives:
- 'package:angular2/common.dart#COMMON_DIRECTIVES'
platform_pipes:
- 'package:angular2/common.dart#COMMON_PIPES'
entry_points: web/main.dart
- dart_to_js_script_rewriter
答案 0 :(得分:2)
<强>更新强>
你的pubspec.yaml将Angular2限制为beta.18,但已经有beta.19可用。
如果将依赖项更改为
dependencies:
angular2: ^2.0.0-beta.18
并运行pub upgrade
您将获得最新版本。
我不知道与管道有关的变化,但值得一试(根据下面的评论修正了它。)
<强>原始强>
您需要在pubspec.yaml
中指定commonPipes
应该是环境
transformers:
- angular2:
platform_directives:
- 'package:angular2/common.dart#COMMON_DIRECTIVES'
platform_pipes:
- 'package:angular2/common.dart#COMMON_PIPES'
entry_points: web/main.dart
另见