2017-03-23 6 views
0

Ich möchte eines meiner Javascript automatisch auf die Last meiner HTML-Seite laden. Die HTML-Seite beim Laden von dem ich meine Js-Datei laden möchte.Problem beim Laden der Backbone-Ansicht zum ersten Mal

<!DOCTYPE html> 
<html> 

<head> 
    <script src="/static/js/LoginApp.js"></script> 
    <meta charset="ISO-8859-1"> 
    <title>Insert title here</title> 
</head> 

<body> 
    <div class="container"> 
     <h1>Backbone Tutorial Blogroll App</h1> 
     <button type="button" id="newButton">Click Me!</button> 
     <script src="/static/js/require.js"></script> 
     <script src="/static/js/LoadView.js"></script> 
    </div> 
</body> 

</html> 

Die Javascript ich zu ladende ist

LoadView.js

define([ 
     'jquery', 
     'underscore', 
     'backbone', 
     'LoadView', 
     'text!NewViewCheck.html', 

     ], function($, _, Backbone, LoadView, NewViewCheck) { 
    var Task = Backbone.Model.extend({ 
     defaults: {} 
    }); 
    TheView = Backbone.View.extend({ 
     model: new Task(), 
     events: { 
      'click #newButton': 'initializeView', 
     }, 
     //'template' provides access to instance data when rendering the view 
     template: _.template(NewViewCheck), 
     initialize: function() { 
      console.log('Inside the initialize function'); 
      this.render(); 
     }, 
     render: function() { 
      //this.$el.html(this.template()); 
      console.log(labelsLocale); 
      this.$el.html(this.template({})); 
      $('#dialogContent').empty().append(this.$el); 
      $('#addUserDefinedOption').modal('show'); 
     }, 
     initializeView: function() { 
      var theView = new TheView(); 
      console.log('abc'); 
     }, 
    }); 
    $(document).ready(function() { 
     //console.log('abc'); 
    }) 
}); 

Ich erhalte die folgenden Fehler Uncaught Error: Mismatched anonymous define() module

Bitte mir Dank im Voraus helfen.

+0

Ist Ihr ' 'Text! NewViewCheck.html'' Vorlage befindet sich in der gleichen Weg wie definiert verwendet? –

+0

Können Sie uns bitte den physischen Pfad Ihrer 'NetViewCheck.html' in Ihrem Verzeichnis mitteilen? –

+0

es ist in der öffentlichen Ordner meiner Feder Anwendung vorhanden. –

Antwort

1

Der Fehler ist, weil Sie haben:

<script src="/static/js/LoadView.js"></script> 

Die docs sagt:

Wenn Sie manuell ein Skript-Tag im HTML-Code ein Skript mit einem anonymen definieren() Aufruf zu laden, diese Fehler kann auftreten.

Und das ist, was Sie tun.

Und in Lösungen:

  • Seien Sie sicher, dass alle Skripte laden, die() über die RequireJS API-Aufruf definieren. Codetags in HTML nicht manuell codieren, um Skripts zu laden, in denen define() -Aufrufe enthalten sind.

  • Wenn Sie ein HTML-Skript-Tag manuell codieren, stellen Sie sicher, dass es nur benannte Module enthält und dass ein anonymes Modul mit demselben Namen wie eines der Module in dieser Datei nicht geladen ist.

So einfach laden Sie es requireJS von Ihrem Haupt-Datei oder benennen Sie das Modul