Angular 2 - Cara menavigasi ke rute lain menggunakan this.router.parent.navigate('/about')
.
Tampaknya tidak berfungsi. Saya mencoba location.go("/about");
karena itu tidak berhasil.
Pada dasarnya setelah pengguna masuk saya ingin mengarahkan mereka ke halaman lain.
Ini kode saya di bawah ini:
import {Component} from 'angular2/angular2';
import {CORE_DIRECTIVES, FORM_DIRECTIVES} from 'angular2/angular2';
import {Router} from 'angular2/router';
import {AuthService} from '../../authService';
//Model
class User {
constructor(public email: string, public password: string) {}
}
@Component({
templateUrl:'src/app/components/todo/todo.html',
directives: [CORE_DIRECTIVES, FORM_DIRECTIVES]
})
export class Todo {
model = new User('[email protected]', 'Password');
authService:AuthService;
router: Router;
constructor(_router: Router, _authService: AuthService){
this.authService = _authService;
this.router = _router;
}
onLogin = () => {
this.authService.logUserIn(this.model).then((success) => {
//This is where its broke - below:
this.router.parent.navigate('/about');
});
}
}
angular
typescript
angular2-routing
AngularM
sumber
sumber
/
di jalur Anda karena tidak diperlukanJawaban:
Routing jalur absolut
Ada 2 metode untuk navigasi,
.navigate()
dan.navigateByUrl()
Anda dapat menggunakan metode ini
.navigateByUrl()
untuk routing jalur absolut:Anda meletakkan jalur absolut ke URL komponen yang ingin Anda navigasi.
Catatan: Selalu tentukan path absolut lengkap saat memanggil
navigateByUrl
metode router . Jalur absolut harus dimulai dengan yang pertama/
Routing jalur relatif
Jika Anda ingin menggunakan rute jalur relatif, gunakan
.navigate()
metode ini.CATATAN: Agak tidak intuitif bagaimana perutean bekerja, terutama rute induk, saudara, dan anak:
Atau jika Anda hanya perlu menavigasi dalam jalur rute saat ini, tetapi ke parameter rute yang berbeda:
Array parameter tautan
Array parameter tautan menyimpan bahan-bahan berikut untuk navigasi router:
['/hero']
['/hero', hero.id]
atau['/hero', { id: hero.id, foo: baa }]
Sintaks seperti direktori
Router mendukung sintaksis mirip direktori dalam daftar parameter tautan untuk membantu memandu pencarian nama rute:
./
atau tidak ada garis miring yang relatif terhadap level saat ini.../
untuk naik satu tingkat di jalur rute.Anda dapat menggabungkan sintaks navigasi relatif dengan jalur leluhur. Jika Anda harus menavigasi ke rute persaudaraan, Anda bisa menggunakan
../<sibling>
konvensi untuk naik satu tingkat, lalu naik turun jalur rute persaudaraan.Catatan penting tentang nagivasi relatif
Untuk menavigasi jalur relatif dengan
Router.navigate
metode ini, Anda harus menyediakanActivatedRoute
untuk memberi pengetahuan router tentang di mana Anda berada di pohon rute saat ini.Setelah array parameter tautan, tambahkan objek dengan
relativeTo
properti yang disetel keActivatedRoute
. Router kemudian menghitung URL target berdasarkan lokasi rute aktif.Dari Dokumentasi Router Sudut resmi
sumber
{ path: 'home', component: Home, children: homeRoutes }
Maka Anda ingin memberikan itu dengan metode router:this.router.navigate(['home/address-search'])
ORthis.router.navigateByUrl(/'home/address-search')
this.router= Router;
mungkin membingungkan beberapa pembaca, dalam hal ini adalah penyebutan ketergantungan pada Router, yang harus saya buat menggunakan kode ini sebagai gantinyaconstructor( private router: Router )
Kamu harus menggunakan
Selain menentukan jalur rute, Anda juga dapat menentukan nama rute Anda:
sumber
this._router.navigate(['/some-route']);
Juga bisa digunakan tanpa
parent
katakan definisi router seperti:
kemudian dapat menavigasi dengan
name
alih-alihpath
Diperbarui untuk V2.3.0
Di Routing from v2.0 name property tidak ada lagi. route define tanpa properti nama . jadi Anda harus menggunakan jalur alih-alih nama .
this.router.navigate(['/path'])
dan tidak ada garis miring terkemuka untuk jalur jadi gunakanpath: 'about'
sajapath: '/about'
definisi router seperti:
kemudian dapat menavigasi dengan
path
sumber
name
tidak digunakan lagi pada tipe Route di Angular 2.0.v2.3.0
yangdata
akan digunakan sebagai penggantiname
. Untuk detail lebih lanjut -> angular.io/docs/ts/latest/guide/router.htmlsumber
Secara pribadi, saya menemukan bahwa, karena kami memelihara
ngRoutes
koleksi (cerita panjang) saya menemukan kesenangan paling dari:Saya benar-benar menggunakannya sebagai bagian dari salah satu pertanyaan wawancara kami. Dengan cara ini, saya bisa membaca hampir instan di siapa yang telah berkembang selamanya dengan menonton siapa yang bergerak ketika mereka mengalami
GOTO(1)
untuk pengalihan Homepage.sumber