So beheben Sie den nicht erfassten TypeError: Kann die Eigenschaft „Prototype“ von undefined nicht lesen?

Lesezeit: 2 Minuten

Benutzer-Avatar
Oleksandr H

Ich habe ein kleines Problem. Ich verwende backbone.js. Ich habe diesen Code wie im Beispiel geschrieben:

<script>
$(document).ready(function () {
    window.App = {
        Views: {},
        Models: {},
        Collections: {}
    }

    App.Collections.Users = Backbone.Collection.extend({
         model: App.Models.User,
         url: 'service'
    });
    App.Models.User = Backbone.Model.extend({});

    App.Views.App = Backbone.View.extend({
         initialize: function() {
             console.log( this.collection.toJSON() );
         }
    });

});
</script>

Dann habe ich den Server gestartet und in der Browserkonsole Folgendes eingegeben:

var x =new App.Collections.Users();
x.fetch()

Und dies folgt auf Fehler: Uncaught TypeError: Cannot read property 'prototype' of undefined. Als Antwort sind jedoch Daten vorhanden. Einzelheiten im Bild. Wie kann man das beheben? Danke für eure Antworten.Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Benutzer-Avatar
Oleksandr H

Ich habe diesen Fehler behoben. Das Problem war, dass ich Collection und dann das Model erstellt habe. Sammlungen verwenden das Benutzermodell als Arbeitseinheit, aber als ich diese Sammlung definiert habe, habe ich kein Modell definiert.

Wenn Sie also diesen Fehler vermeiden möchten, definieren Sie zuerst ein Modell und erst dann die Sammlung.

  • Das war bei mir auch das Problem, danke! Ich benutze Gulp, also wenn jemand das benutzt, überprüfen Sie bitte die Ladereihenfolge.

    – Sander

    11. November 2014 um 13:03 Uhr

  • Ja, ich habe das Modell umbenannt, auf das die Sammlung verwiesen hat, was diesen Fehler verursacht hat.

    – Nullen und Einsen

    29. März 2015 um 19:26 Uhr

  • Gott segne StackOverflow. Diese Fehlermeldung hätte mich nie zu dieser Schlussfolgerung geführt. Ich bin auch ein Opfer von Gulps Minifying.

    – ProblemsOfSumit

    10. Juni 2015 um 15:27 Uhr


  • Danke, das gleiche Problem hatte ich auch. Ich habe das Sammlungsmodell in erstellt initialize Methode, anstatt sie als Eigenschaft zu definieren model der Sammlung.

    – Guillaume Renoult

    9. November 2015 um 22:17 Uhr


  • Geschah sogar, als beide in bereiten Blöcken waren. Musste einen Ladebefehl erzwingen.

    – Scones

    28. März 2016 um 18:25 Uhr

Benutzer-Avatar
rzskhr

Backbone Js ist von underscore.js und jQuery abhängig, versuchen Sie, die Ressourcen neu anzuordnen. Das hat bei mir funktioniert:

<head>
    <title>Backbone</title>

    <!-- Scripts Load Here-->       
    <script type="text/javascript" src="https://stackoverflow.com/questions/19702782/js/jquery-1.11.0.min.js"></script>
    <script type="text/javascript" src="js/underscore.js"></script>
    <script type="text/javascript" src="js/backbone.js"></script>
</head>

  • Ich sehe, das ist richtig. aufgrund des Bibliothekseinfuhrauftrags

    – Entführung 1991

    4. November 2014 um 2:36 Uhr

  • Ich hatte ein ähnliches Problem, dass backbone.min sich über das Lesen von undefinierten Eigenschaften beschwerte. Ich vermutete, dass es sich um ein Sammlungsproblem handelte, es handelte sich um ein Importauftragsproblem, lol, danke Jungs

    – Syntaxsizer

    8. März 2017 um 7:32 Uhr

In meinem Fall waren die Importe falsch

import { urlencoded } from "express";

Als ich diese Aussage entfernte, funktionierte es für mich. Überprüfen Sie die Importe der Dateien, mit denen Sie arbeiten, ob etwas Unnötiges importiert wurde

Benutzer-Avatar
niek tuytel

In meinem Fall sind folgende Importe falsch: (reagieren)

// remove
import e from 'express';

1257610cookie-checkSo beheben Sie den nicht erfassten TypeError: Kann die Eigenschaft „Prototype“ von undefined nicht lesen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy