我正在使用Angular 2 beta(TypeScript)。
当我点击使用<a [routerLink]="['Friends']">Friends</a>
的链接转到此页面时,它会显示文本朋友列表和 ID 。
但是,当我使用代码this._router.navigate(['/Friends']);
转到此页面时,它只能显示文字好友列表,但没有 ID 。< / p>
import {Component, View} from 'angular2/core';
@Component({
selector: 'friends-component'
})
@View({
template: `
friends list:
<ul>
<li *ngFor="#friend of friends">
{{friend.id}}
</li>
</ul>
`
})
export class FriendsComponent {
public friends = FRIENDS;
}
var FRIENDS: any[] = [
{ "id": 11 },
{ "id": 22 },
{ "id": 33 },
];
答案 0 :(得分:1)
问题是因为我的代码this._router.navigate(['/Friends']);
在Angular区域之外运行。查看this了解详情。
解决方案是:
第一
import {NgZone} from 'angular2/core';
其次,添加此
constructor(private _ngZone: NgZone) {}
第三,将代码更改为
this._ngZone.run(() => {
this._router.navigate(['/Friends']);
});
答案 1 :(得分:-1)
你应该使用
this._router.parent.navigate(['/Friends']):