ฉันมีความคิดเห็นและข้อเสนอแนะหลายประการ โปรดจดบันทึก:

- เหตุใดเราจึงต้องการอัพเกรดจาก Angular 1 เป็น Angular 2 ฉันจะเขียนว่า Angular 2 เป็นเวอร์ชันหลักถัดไปของเฟรมเวิร์กที่เราต้องการใช้งาน และยังมอบความสามารถใหม่ๆ เช่น การเรนเดอร์ฝั่งเซิร์ฟเวอร์ เครื่องมือสร้างเทมเพลตอันทรงพลังใหม่ เป็นต้น

- ฉันจะอธิบายว่าการอัพเกรดแบบค่อยเป็นค่อยไปหมายถึงอะไร ซึ่งต้องขอบคุณการประกาศ ngUpgrade Angular1 และการประกาศ Angular2 ที่สามารถใช้ร่วมกันได้

- ฉันพยายามใช้ Angular2-Material ร่วมกับ ngUpgrade แต่ด้วยเหตุผลบางอย่างมันใช้งานไม่ได้ และฉันได้รับข้อผิดพลาดต่อไปนี้:

ข้อผิดพลาดในการแยกวิเคราะห์เทมเพลต: 'md-input' ไม่ใช่องค์ประกอบที่รู้จัก

ฉันมีแอปสองเวอร์ชัน เวอร์ชันหนึ่งเป็นลูกผสมของ Angular1 และ Angular2 ซึ่งเกิดข้อผิดพลาดที่กล่าวถึงข้างต้น และเวอร์ชันที่สองอิงจาก Angular2 ล้วนๆ ซึ่งทุกอย่างดำเนินไปอย่างถูกต้อง ฉันเชื่อว่าสิ่งนี้มีสาเหตุมาจากปัญหาความเข้ากันได้กับ ngUpgrade แต่นี่เป็นเพียงข้อสันนิษฐานเท่านั้น โปรดระวังไว้ด้วย!

- มีกลยุทธ์มากมายที่สามารถอัพเกรดได้ คุณไม่จำเป็นต้องส่งออกโมดูล Angular2 นี่ไม่ใช่ประเด็นสำคัญของ ngUpgrade และเป็นสิ่งสำคัญที่จะต้องเน้นย้ำ เพราะเมื่อฉันทำตามบทช่วยสอนนี้ มันค่อนข้างสับสนและฉันเชื่อว่ามันจะสร้างความสับสนสำหรับผู้อื่นเช่นกัน ในแอปของฉัน ฉันใช้โมดูลเดียวสำหรับแอปพลิเคชันทั้งหมดของฉัน แม้ว่าฉันจะใช้หลายโมดูลสำหรับแอปเวอร์ชัน Angular1 ก็ตาม

- คงจะดีถ้ามีการอ้างอิงถึงบทความที่สอนคุณเกี่ยวกับกระบวนการย้ายองค์ประกอบเดียว

- ฉันขอแนะนำให้มีข้อมูลเบื้องต้นเกี่ยวกับอะแดปเตอร์อัปเกรด เราจะอัปเกรดเมื่อใด และจะดาวน์เกรดเมื่อใด และเหตุใดเราจึงทำเช่นนี้ คิดเสมอว่าผู้อ่านบทความไม่รู้อะไรเกี่ยวกับ ngUpgrade ท้ายที่สุดนี่คือสิ่งที่บทความนี้เกี่ยวกับใช่ไหม?

- IMHO การลดระดับเป็นหนึ่งในส่วนที่สับสนที่สุดของบทความนี้ เมื่อคุณดู [เอกสารอย่างเป็นทางการของ Angular สำหรับอะแดปเตอร์อัปเกรด](https://angular.io/docs/ts/latest/guide/upgrade.html) คุณจะสังเกตเห็นข้อมูลโค้ดต่อไปนี้:

```js
const HeroDetail = upgradeAdapter.upgradeNg1Component('heroDetail');
@NgModule({
นำเข้า: [ BrowserModule ],
การประกาศ: [ ContainerComponent, HeroDetail ]
})
ส่งออกคลาส AppModule {}
```

นี่เป็นเรื่อง *อย่างยิ่ง* สับสนเนื่องจากบทความนี้ทำให้คุณเข้าใจผิด หากคุณทำตามคำแนะนำ คุณจะพบกับการพึ่งพาแบบวงกลม ฉันใช้เวลามากมายในการพยายามทำความเข้าใจว่าเกิดอะไรขึ้นที่นี่ หลังจากอ่านบทความของคุณแล้ว ฉันพบว่ามีความไม่สอดคล้องกันในเอกสารของ Angular ฉันผ่านการปรับใช้ ngUpgrade และในที่สุดทุกอย่างชัดเจน คุณไม่จำเป็นต้องประกาศส่วนประกอบหลังจากอัปเกรดแล้ว อะแดปเตอร์อัปเกรดจะดำเนินการดังกล่าวให้คุณ ฉันจะเจาะลึกถึงการใช้งาน ngUpgrade สักหน่อย ฉันจะอธิบายว่าเราผ่านโมดูล Angular2 ในระหว่างการกำหนดค่าเริ่มต้น เพื่อให้สามารถขยายได้ในภายหลัง และจริงๆ แล้วมันเป็นโมดูลจำลองและโมดูลที่กำลังบูตเครื่องจะถูกสร้างขึ้นโดยอะแดปเตอร์ มันจะทำให้เรื่องต่างๆชัดเจนขึ้น

- ไม่มีคำอธิบายว่าตัวเลือก 'asToken' หมายถึงอะไร

แม้ว่าฉันจะวิจารณ์ แต่โดยรวมแล้วฉันรู้สึกว่าบทความนี้ดีมากเพราะมีข้อมูลมากและตรงประเด็น ทำได้ดีมากและฉันรอคอยมากขึ้นว่ามันมาจากไหน!