Backbone.js: "ขยาย" ไม่ได้กำหนด?


103

เพิ่งเริ่มต้นกับ Backbone.js เพียงแค่รวม Backbone (เวอร์ชัน dev / การผลิต) ทำให้เกิดข้อผิดพลาด:

Uncaught TypeError: Cannot call method 'extend' of undefined ในบรรทัด 128:

// Attach all inheritable methods to the Model prototype
_.extend(Backbone.Model.prototype, Backbone.Events, 

คำถาม: คุณรวมเข้ากับไลบรารี JS อื่น ๆ รวมถึง Backbone หรือไม่ คุณลองดูว่าคุณยังคงได้รับข้อผิดพลาดโดยไม่มีข้อผิดพลาดเหล่านี้หรือไม่?
Spudley

เป็นแอป Rails ใหม่ล่าสุด ฉันไม่ได้โหลด jQuery ด้วยซ้ำ! :)
Matt Darby

คำตอบ:


216

underscore.jsปัญหาก็คือว่าผมไม่ได้โหลด ฉันพลาดการพึ่งพาในเอกสารโดยสิ้นเชิง Duh.

คำชี้แจงเพิ่มเติมจาก @tjorriemorrie: ฉันมีขีดล่าง แต่โหลดผิดลำดับการโหลดครั้งแรกขีดล่าง (เดาว่านั่นคือสิ่งที่ 'การพึ่งพา' หมายถึง :)


การชี้แจงเพิ่มเติมในกรณีที่ไม่ชัดเจน ลำดับที่สิ่งต่างๆถูกโหลดใน JavaScript เกี่ยวข้องกับลำดับที่แสดงบนเพจ ในการโหลดขีดล่างก่อนตรวจสอบให้แน่ใจว่าแท็กสคริปต์ที่รวมอยู่ก่อนแท็กโหลดแบ็กโบน แบบนี้:

<script src="underscore-1.4.4-min.js"></script>
<script src="backbone-1.0.0-min.js"></script>

2
ขอบคุณมากงงว่าฉันทำอะไรผิดทำไมฉันโหลดกระดูกสันหลังไม่ได้!
Victor Farazdagi

22
ฉันมีขีดล่าง แต่โหลดผิดลำดับขีดล่างโหลดครั้งแรก (เดาว่านั่นคือสิ่งที่ 'การพึ่งพา' หมายถึง :)
Tjorriemorrie

11
การดู 4,600+ ครั้งและการโหวต 55 ครั้งในภายหลังดูเหมือนว่ามีผู้คนจำนวนมากขาดข้อกำหนด บางทีพวกเขาควรจะเด่นชัดกว่านี้
Xeoncross

@ Matt Darby: คุณสามารถเพิ่มความคิดเห็นจาก Tjorriemorrie ลงในคำตอบได้หรือไม่?
sumid


1

ลำดับก็สำคัญเช่นกัน ฉันได้รับข้อผิดพลาดเดียวกันและไม่ได้รับการแก้ไขจนกว่าฉันจะให้ underscore.js ก่อน backbone.js

<script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.3.3/underscore-min.js" type="text/javascript"></script>
  <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js" type="text/javascript"></script>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.