คำถามติดแท็ก angular2-routing

Angular Routing เป็นคุณสมบัติในตัวที่ช่วยให้คุณสร้างอินเทอร์เฟซผู้ใช้ Single Page Application (SPA) ซึ่งผู้ใช้สามารถนำทางไปยังมุมมองต่างๆได้โดยไม่ต้องโหลดหน้าเว็บทั้งหมดจากเซิร์ฟเวอร์ทุกครั้ง

30
วิธีรับเส้นทางปัจจุบัน
เอกสารปัจจุบันพูดคุยเกี่ยวกับการรับพารามิเตอร์เส้นทางเท่านั้นไม่ใช่ส่วนของเส้นทางที่แท้จริง ตัวอย่างเช่นหากฉันต้องการค้นหาพาเรนต์ของเส้นทางปัจจุบันเป็นไปได้อย่างไร?

14
วิธีการย้อนกลับหน้าสุดท้าย
มีวิธีที่ชาญฉลาดในการย้อนกลับหน้าสุดท้ายใน Angular 2 หรือไม่? สิ่งที่ต้องการ this._router.navigate(LASTPAGE); ตัวอย่างเช่นหน้า C มีGo Backปุ่ม หน้า A -> หน้า C คลิกที่มันกลับไปที่หน้า A หน้า B -> หน้า C คลิกที่มันกลับไปที่หน้า B เราเตอร์มีข้อมูลประวัตินี้หรือไม่?

30
ในเชิงมุมคุณจะกำหนดเส้นทางที่ใช้งานได้อย่างไร
หมายเหตุ: มีคำตอบต่าง ๆ มากมายที่นี่และส่วนใหญ่ใช้ได้ในครั้งเดียวหรืออย่างอื่น ความจริงก็คือสิ่งที่ได้ผลมีการเปลี่ยนแปลงหลายครั้งเนื่องจากทีม Angular ได้เปลี่ยนเราเตอร์ เราเตอร์เวอร์ชัน 3.0 ที่ในที่สุดจะเป็นเราเตอร์ใน Angular จะแบ่งการแก้ปัญหาเหล่านี้ออกเป็นจำนวนมาก แต่นำเสนอโซลูชันที่เรียบง่ายของตัวเอง ตั้งแต่ RC.3 โซลูชันที่ต้องการคือใช้[routerLinkActive]ดังที่แสดงในคำตอบนี้ ในแอปพลิเคชันเชิงมุม (ปัจจุบันในรุ่น 2.0.0-beta.0 ขณะที่ฉันเขียน) คุณจะทราบได้อย่างไรว่าเส้นทางที่ใช้งานอยู่ในปัจจุบันคืออะไร? ฉันกำลังทำงานกับแอพที่ใช้ Bootstrap 4 และฉันต้องการวิธีทำเครื่องหมายลิงก์ / ปุ่มการนำทางเป็นแอคทีฟเมื่อองค์ประกอบที่เกี่ยวข้องแสดงใน<router-output>แท็ก ฉันรู้ว่าฉันสามารถรักษาสถานะของตัวเองได้เมื่อมีการคลิกปุ่มใดปุ่มหนึ่ง แต่นั่นไม่ครอบคลุมถึงกรณีที่มีหลายเส้นทางในเส้นทางเดียวกัน (พูดเมนูนำทางหลักเช่นเดียวกับเมนูท้องถิ่นในองค์ประกอบหลัก ) คำแนะนำหรือลิงค์ใด ๆ จะได้รับการชื่นชม ขอบคุณ

23
Angular 2 เลื่อนไปด้านบนสุดในการเปลี่ยนเส้นทาง
ในแอพ Angular 2 ของฉันเมื่อฉันเลื่อนหน้าลงและคลิกลิงก์ที่ด้านล่างของหน้ามันจะเปลี่ยนเส้นทางและพาฉันไปหน้าถัดไป แต่มันจะไม่เลื่อนไปที่ด้านบนของหน้า ดังนั้นหากหน้าแรกมีความยาวและหน้าที่ 2 มีเนื้อหาเพียงเล็กน้อยก็จะสร้างความประทับใจว่าหน้า 2 ไม่มีเนื้อหา เนื่องจากเนื้อหาจะปรากฏต่อเมื่อผู้ใช้เลื่อนไปที่ด้านบนของหน้า ฉันสามารถเลื่อนหน้าต่างไปที่ด้านบนของหน้าเว็บใน ngInit ของส่วนประกอบ แต่มีวิธีแก้ปัญหาที่ดีกว่านี้ที่สามารถจัดการเส้นทางทั้งหมดในแอปของฉันโดยอัตโนมัติหรือไม่?

4
จะส่งพารามิเตอร์ไปยัง routerLink ที่อยู่ภายใน URL ได้อย่างไร
ฉันรู้ว่าฉันสามารถส่งพารามิเตอร์ไปที่routerLinkเส้นทางเช่น /user/:id โดยการเขียน [routerLink]="['/user', user.id]" แต่สิ่งที่เกี่ยวกับเส้นทางเช่นนี้: /user/:id/details มีวิธีตั้งค่าพารามิเตอร์นี้หรือฉันควรพิจารณารูปแบบ URL ที่แตกต่างกันหรือไม่

30
เราเตอร์เชิงมุม 2.0 ไม่ทำงานในการโหลดเบราว์เซอร์ใหม่
ฉันใช้รุ่น Angular 2.0.0-alpha.30 เมื่อเปลี่ยนเส้นทางไปยังเส้นทางอื่นแล้วรีเฟรชเบราว์เซอร์โดยแสดงเป็นไม่สามารถรับ / เส้นทาง คุณสามารถช่วยฉันหาสาเหตุว่าทำไมข้อผิดพลาดนี้เกิดขึ้น

5
Angular 2 - วิธีนำทางไปยังเส้นทางอื่นโดยใช้ this.router.parent.navigate ('/ about')
เชิงมุม 2 - this.router.parent.navigate('/about')วิธีเพื่อนำทางไปยังเส้นทางอื่นใช้ ดูเหมือนจะไม่ทำงาน ฉันพยายามlocation.go("/about");เพราะมันใช้งานไม่ได้ โดยทั่วไปเมื่อผู้ใช้ลงชื่อเข้าใช้ฉันต้องการเปลี่ยนเส้นทางไปยังหน้าอื่น นี่คือรหัสของฉันด้านล่าง: 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 …

11
จะเปลี่ยนเส้นทางไปยัง URL ภายนอกใน Angular2 ได้อย่างไร
วิธีการเปลี่ยนเส้นทางผู้ใช้ไปยัง URL ภายนอกทั้งหมดใน Angular 2 ตัวอย่างเช่นหากฉันต้องการเปลี่ยนเส้นทางผู้ใช้ไปยังเซิร์ฟเวอร์ OAuth2 เพื่อตรวจสอบสิทธิ์ฉันจะทำอย่างไร Location.go(), Router.navigate()และRouter.navigateByUrl()ไม่เป็นไรสำหรับการส่งผู้ใช้ไปยังส่วนอื่น (เส้นทาง) ภายในแอป Angular 2 แต่ฉันไม่เห็นว่าพวกเขาจะถูกนำไปใช้เพื่อเปลี่ยนเส้นทางไปยังไซต์ภายนอกได้อย่างไร


8
ไม่สามารถเชื่อมโยงกับ 'routerLink' เนื่องจากไม่ใช่คุณสมบัติที่รู้จัก
เมื่อเร็ว ๆ นี้ฉันได้เริ่มเล่นกับ angular 2 มันยอดเยี่ยมมาก angular-cliดังนั้นฉันได้เริ่มโครงการสาธิตส่วนตัวเพื่อประโยชน์ของการเรียนรู้โดยใช้ ด้วยการตั้งค่าการกำหนดเส้นทางพื้นฐานตอนนี้ฉันต้องการนำทางไปยังบางเส้นทางจากส่วนหัว แต่เนื่องจากส่วนหัวของฉันเป็นพาเรนต์ไปยังส่วนหัวrouter-outletฉันจึงได้รับข้อผิดพลาดนี้ app.component.html <app-header></app-header> // Trying to navigate from this component <router-outlet></router-outlet> <app-footer></app-footer> header.component.html <a [routerLink]="['/signin']">Sign in</a> ตอนนี้ฉันเข้าใจบางส่วนฉันเดาว่าเนื่องจากส่วนประกอบนั้นเป็นกระดาษห่อหุ้มรอบ ๆrouter-outletจึงไม่สามารถเข้าถึงได้ด้วยวิธีrouterนี้ ดังนั้นจึงมีความเป็นไปได้ที่จะเข้าถึงการนำทางจากภายนอกสำหรับสถานการณ์เช่นนี้หรือไม่? ฉันยินดีเป็นอย่างยิ่งที่จะเพิ่มข้อมูลเพิ่มเติมหากจำเป็น ขอบคุณล่วงหน้า. อัปเดต 1- ของฉันpackage.jsonมี@angular/router 3.3.1เวอร์ชันเสถียรอยู่แล้ว 2- ในappโมดูลหลักของฉันฉันได้นำเข้าไฟล์routing-module. โปรดดูที่ด้านล่าง. app.module.ts import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import …

14
ฉันจะสร้างบริการเดี่ยวใน Angular 2 ได้อย่างไร
ฉันได้อ่านแล้วว่าการฉีดเมื่อการบูตสแตรปควรให้เด็กทุกคนใช้อินสแตนซ์เดียวกันร่วมกัน แต่ส่วนประกอบหลักและส่วนหัวของฉัน (แอพหลักรวมถึงส่วนหัวและเต้ารับเราเตอร์) แต่ละเครื่องได้รับอินสแตนซ์แยกจากบริการของฉัน ฉันมี FacebookService ซึ่งฉันใช้เพื่อโทรไปที่ facebook javascript api และ UserService ที่ใช้ FacebookService นี่คือบูตของฉัน: bootstrap(MainAppComponent, [ROUTER_PROVIDERS, UserService, FacebookService]); จากการเข้าสู่ระบบของฉันดูเหมือนว่าการเรียก bootstrap เสร็จสิ้นจากนั้นฉันเห็น FacebookService จากนั้น UserService ที่ถูกสร้างขึ้นก่อนที่รหัสในแต่ละตัวสร้างการทำงาน, MainAppComponent, HeaderComponent และ DefaultComponent:

17
ลิงก์แฝงในเชิงมุม 2 - <a href= คิดเห็น ”> เทียบเท่า
ใน Angular 1.x ฉันสามารถทำสิ่งต่อไปนี้เพื่อสร้างลิงค์ที่ไม่ทำสิ่งใดโดยพื้นฐาน: &lt;a href=""&gt;My Link&lt;/a&gt; แต่แท็กเดียวกันนำทางไปยังฐานแอพใน Angular 2 อะไรที่เทียบเท่ากันใน Angular 2 แก้ไข:ดูเหมือนว่าบั๊กในเราเตอร์ Angular 2 และตอนนี้มีปัญหาแบบเปิดบน githubเกี่ยวกับเรื่องนั้น ฉันกำลังมองหาวิธีแก้ปัญหากล่องหรือยืนยันว่าจะไม่มี


7
เปลี่ยนเส้นทางเชิงมุมไปยังหน้าเข้าสู่ระบบ
ฉันมาจากโลก Asp.Net MVC ซึ่งผู้ใช้ที่พยายามเข้าถึงเพจที่พวกเขาไม่ได้รับอนุญาตจะถูกเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบโดยอัตโนมัติ ฉันพยายามสร้างพฤติกรรมนี้ซ้ำใน Angular ฉันเจอมัณฑนากร @CanActivate แต่ผลลัพธ์ก็คือส่วนประกอบไม่แสดงผลเลยไม่มีการเปลี่ยนเส้นทาง คำถามของฉันมีดังต่อไปนี้: Angular มีวิธีในการบรรลุพฤติกรรมนี้หรือไม่? ถ้าเป็นเช่นนั้นอย่างไร? เป็นแนวทางปฏิบัติที่ดีหรือไม่? ถ้าไม่แนวทางปฏิบัติที่ดีที่สุดในการจัดการการอนุญาตผู้ใช้ใน Angular คืออะไร

11
RouterLink ไม่ทำงาน
การกำหนดเส้นทางของฉันในแอพ angular2 ทำงานได้ดี แต่ฉันจะสร้าง routeLink ตามนี้ : นี่คือเส้นทางของฉัน: const routes: RouterConfig = [ { path:'home' , component: FormComponent }, { path:'about', component: AboutComponent }, { path:'**' , component: FormComponent } ]; และนี่คือลิงค์ที่ฉันทำ: &lt;ul class="nav navbar-nav item"&gt; &lt;li&gt; &lt;a routerLink='/home' routerLinkActive="active"&gt;Home&lt;/a&gt; &lt;/li&gt; &lt;li&gt; &lt;a routerLink='/about' routerLinkActive="active"&gt;About this&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt; ฉันคาดหวังว่าเมื่อฉันคลิกที่พวกเขามันจะไปยังองค์ประกอบที่เคารพ แต่พวกเขาไม่ได้ทำอะไรเลย?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.