새 매개 변수로 경로를 지정할 때 구성 요소가 다시 초기화되는 문제가 있습니다. 여기 내 경로입니다.매개 변수가있는 앵귤러 경로 2 개가 onInit 구성 요소를 다시 초기화합니다.
const appRoutes: Routes = [
{ path: '', component: MyNewComponentComponent },
{ path: 'tiles', component: DisplayTileData },
{ path: 'tiles/:master/:filters', component: DisplayTileData }
];
"타일"에 연결하고 일부 데이터를 가져 오기 위해 서비스 호출을 수행합니다. 그런 다음 "마스터"및 "필터"값을 사용하여 같은 구성 요소로 다시 라우팅하는 두 개의 단추가 있습니다. 매개 변수를 사용하여 구성 요소로 다시 라우팅하면 구성 요소가 다시 초기화되고 서비스 호출이 반복됩니다. 또한 페이지에 텍스트 입력이 있습니다. 이 구성 요소를 처음으로 라우팅하고 텍스트를 추가하면 매개 변수가있는 경로가 해당 텍스트를 삭제합니다.
<a *ngFor="let tile of tiles">{{tile.id}}</a><br/><br/>
<input class="form-control" maxlength="30" minlength="3" name="from" ng-reflect-maxlength="30">
<button (click)="addNumberToFilter(15)"></button>
<button (click)="addNewMasterPath('do')">add new Number to Filter</button>
새 매개 변수로 라우팅 할 때이 경로 재 초기화를 방지 할 수있는 방법이 있습니까?
버튼에 대한 기본값이 있습니다. 방법은 다음과 같습니다.
public variable: any = [3,4];
public master: any = 'eat';
addNewMasterPath(newMasterVariable) {
this.master = this.master + '-' + newMasterVariable;
var newMap = this.variable.map(items => { return items}).join('-');
this.router.navigate(['tiles/', this.master, newMap]);
}
addNumberToFilter(newParameter) {
this.variable.push(newParameter);
var newMap = this.variable.map(items => { return items}).join('-');
this.router.navigate(['tiles/', this.master, newMap]);
}
실제 설정 및 탐색을 수행하는 메소드를 게시 할 수 있습니까? 템플릿에서 2 개의 값을 개별적으로 설정할 수 있으므로 어떻게 처리하는지 궁금해합니다. – MikeOne
[Angular2 - 경로를 트리거하지 않고 위치를 변경하는 중]의 가능한 복제본 (http://stackoverflow.com/questions/34876663/angular2-changing-location-without-triggering-a-route) – dparsons
음 ... 오른쪽. this.router.navigate ([ 'tiles /', this.master, newMap]); 일하곤했다. 그러나 같은 문제에 직면 해있다. 'this.router.navigateByUrl ('/ team/33/user/11');와 같이 실행하십시오. – Gary