我正试图掌握Angular2 + Dart。我遇到了一个奇怪的问题,我正试图让我的头脑 - 我在刷新页面之前似乎无法访问RouteParams。详情如下:
这是我的路线:
const Route(
path: '/game/:id',
name: 'Game',
component: GameComponent
)
这在我的游戏模板中:
<a [routerLink]="['Game', {id: 76043}]">
然后这是我的GameComponent:
import 'package:angular2/angular2.dart';
import 'package:angular2/router.dart'
show ROUTER_DIRECTIVES, Route, RouteConfig, RouteParams;
import 'package:meeple/components/ui-app-bar.component.dart' show UiAppBarComponent;
@Component(
selector: 'router-outlet',
templateUrl: 'game.html',
directives: const [UiAppBarComponent, ROUTER_DIRECTIVES]
)
class GameComponent implements OnInit {
int id;
final RouteParams _routeParams;
GameComponent(this._routeParams);
ngOnInit() {
this.id = int.parse(_routeParams.get('id'));
}
}
当我点击链接时,它会将我带到地址栏中的正确URI并加载GameComponent但是它会抛出以下异常:
ORIGINAL EXCEPTION: Class 'int' has no instance getter 'isEmpty'.
NoSuchMethodError: method not found: 'isEmpty'
堆栈跟踪指向ngOnInit行,该行将this.id设置为来自routeParams的id。
当我刷新页面时,它正确加载!可能导致这种情况的任何想法?
由于
答案 0 :(得分:2)
我认为应该是
<a [routerLink]="['Game', {id: '76043'}]">
不支持路由器参数中的整数。