นั่นเป็นสิ่งที่สวยงามเกี่ยวกับส่วนประกอบของเว็บ หากเบราว์เซอร์รองรับแบบเนทิฟ เบราว์เซอร์จะทำงานแบบเนทีฟในทุกเฟรมเวิร์ก มันจะเหมือนกับการใช้แท็ก <input>
ใน Angular เบราว์เซอร์แสดงผล ไม่ใช่เฟรมเวิร์ก
สิ่งที่คุณต้องทำคือบอก Angular ว่าคุณกำลังใช้องค์ประกอบแบบกำหนดเองที่มันไม่รู้จักกับ CUSTOM_ELEMENTS_SCHEMA
ตอนนี้ เมื่อพูดถึงไลบรารี่ส่วนประกอบของเว็บอย่าง Polymer นั่นเป็นเรื่องราวที่แตกต่างออกไป
Polymer 1.x ใช้ข้อมูลจำเพาะ v0 ขององค์ประกอบที่กำหนดเอง และอาศัยตรรกะที่กำหนดเองจำนวนมากเพื่อจัดการ DOM จนถึง Polymer.dom()
มันเข้ากันไม่ได้กับ Angular หากไม่มีการสนับสนุนจากบุคคลที่สาม เนื่องจาก Angular ใช้วิธีการจัดการ DOM ดั้งเดิมแทนของ Polymer Angular จะไม่เคยรองรับ เนื่องจากข้อมูลจำเพาะ v0 ไม่ใช่สิ่งที่เบราว์เซอร์กำลังใช้งาน
Polymer 2.x ใช้ข้อกำหนดองค์ประกอบที่กำหนดเอง v1 ซึ่งเบราว์เซอร์กำลังใช้งาน (หรือได้ใช้งานแล้ว) มันทำงานเหมือนกับองค์ประกอบปกติ ดังนั้นจึงได้รับการสนับสนุนโดย Angular ตามธรรมชาติ
น้ำตาลส่วนเกินใดๆ ที่ห้องสมุดอย่างโพลีเมอร์มอบให้ เช่น การประทับเทมเพลตและการผูกข้อมูล อาจไม่ทำงานโดยธรรมชาติ
TL;DR;
Angular รองรับ webcomponents ตามข้อกำหนด v1
ไลบรารี (เช่น โพลีเมอร์) ที่สร้างจากส่วนประกอบของเว็บอาจมีฟีเจอร์ที่ใช้งานไม่ได้ใน Angular
หากคุณต้องการใช้ Polymer และ Angular ร่วมกัน ให้เน้นที่ Polymer 2.x ซึ่งใช้ข้อมูลจำเพาะ v1
person
hotforfeature
schedule
28.04.2017