RequireJS with jQuery Validation

Ich versuche, RequireJS zu verwenden, um die Referenzen zu meinen jQuery-Validierungsskriptdateien hinzuzufügen. Ich habe 3 Skriptdateien anstelle der üblichen 1:

jquery.validate - Die jquery-Validierungsbibliothekjquery.validate.unobtrusive - Fügt der jquery-Validierungsbibliothek eine unauffällige Validierung hinzu (sodass Sie Datenattribute verwenden und diese automatisch verknüpfen können). Dies hängt von jquery.validate abjquery.validate.custom - Dies fügt meine eigenen benutzerdefinierten, unauffälligen Überprüfungsmethoden hinzu und hängt von jquery.validate.unobtrusive ab

Ich habe folgende Konfiguration vorgenommen:

require.config({
    paths: {
        'jquery': 'Scripts/jquery-1.8.3.min',
        'jquery.validate': 'Scripts/jquery.validate.custom'
    },
    shim: {
        'Scripts/jquery.validate': ['jquery'],
        'Scripts/jquery.validate.unobtrusive': ['jquery', 'Scripts/jquery.validate'],
        'Scripts/jquery.validate.custom': ['jquery', 'Scripts/jquery.validate.unobtrusive']
    }
});

Jetzt habe ich folgendes Modul:

define(['jquery', 'jquery.validate'], function($) {
    alert('Yey!');
});

In der Datei jquery.validate.custom wird jedoch ein Fehler ausgegeben, der besagt, dass die unauffällige Abhängigkeit nicht eingefügt wurde. Nach einigem Debuggen mit den Browser-Tools und Betrachten der Netzwerkregisterkarte kann ich sehen, dass die Dateien jquery.validate.custom.js und jquery.validate.js erfolgreich heruntergeladen wurden, aber es wird nicht einmal versucht, die Datei jquery.validate.unobtrusive herunterzuladen. js datei.

Ich würde es begrüßen, wenn mir jemand zeigen könnte, was ich falsch mache. Vielen Dank

Bearbeiten:

Ich habe jetzt versucht:

require.config({
    paths: {
        'jquery': 'Scripts/jquery-1.8.3.min',
        'jquery.validate': 'Scripts/jquery.validate.custom'
    },
    shim: {
        'Scripts/jquery.validate': ['jquery'],
        'Scripts/jquery.validate.unobtrusive': ['jquery', 'Scripts/jquery.validate'],
        'jquery.validate': ['jquery', 'Scripts/jquery.validate.unobtrusive']
    }
});

Und es funktioniert richtig. Ich habe auch Folgendes ausprobiert, da ich denke, dass es besser aussieht:

require.config({
    paths: {
        'jquery': 'Scripts/jquery-1.8.3.min',
        'jquery.validate': 'Scripts/jquery.validate.custom',
        'jquery.validate.core': 'Scripts/jquery.validate',
        'jquery.validate.unobtrusive': 'Scripts/jquery.validate.unobtrusive'
    },
    shim: {
        'jquery.validate.core': ['jquery'],
        'jquery.validate.unobtrusive': ['jquery', 'jquery.validate.core'],
        'jquery.validate': ['jquery', 'jquery.validate.unobtrusive']
    }
});

Dies führt jedoch zu einem Timeout-Fehler.

Wenn jemand erklären könnte, warum die zweite Lösung nicht funktioniert, wäre das großartig. Vielen Dank

Antworten auf die Frage(2)

Ihre Antwort auf die Frage