web-dev-qa-db-fra.com

erreur angularjs: [$ compile: tpload] Impossible de charger le modèle

J'essaie de construire une application de routage simple dans angularjs. J'ai la page principale index.html avec ng-view div et le code javascript pour le routage. Également 2 simples pages html view2.html et view3.html placées dans un sous-dossier partials1 . Je reçois une erreur ci-dessous. S'il vous plaît aider.

Erreur: l'accès est refusé . Erreur: [$ compile: tpload] Impossible de charger le modèle: partials1/view3.html http://errors.angularjs.org/1.3.15/ $ compile/tpload? p0 = partials1% 2Fview3.html

  • index.html:

    <div data-ng-view></div>
    
    <script src="angular.js"></script>
    <script src="angular-route.js"></script>
    <script type="text/javascript">
        var demoApp = angular.module('demoApp', [ 'ngRoute' ]);
        demoApp.controller('SimpleController', function($scope) {
            $scope.customers = [ {
                name : 'Jon Smith1',
                city : 'Charlotte'
            }, {
                name : 'John Doe',
                city : 'New York'
            }, {
                name : 'Jane Doe',
                city : 'Jacksonville'
            } ];
        });
    
        demoApp.config([ '$routeProvider', function($routeProvider) {
            $routeProvider.when('/view1', {
                templateUrl : 'partials1/view3.html',
                controller : 'SimpleController'
            }).when('/view2', {
                templateUrl : 'partials1/view2.html',
                controller : 'SimpleController'
            }).otherwise({
                redirectTo : '/view1'
            });
        } ]);
    </script>
    

  • view2.html

    <div class="container">33333333333333</div>
    
  • view3.html

    <div class="container">33333333333333</div>
    
6
Santo

Error: Access is denied vous indique que le modèle n'est pas accessible. Essayez d'ouvrir le modèle dans votre navigateur. Quelque chose comme ceci: http: //my_project/partials1/view3.html . Pour voir l'URL complète utilisée par votre application, utilisez une console dubug (onglet XHR).

4
Kanstantsin Kamkou
Error: [$compile:tpload] Failed to load template: xyz.html (HTTP status: 404 Not Found)

peut être causé par la configuration ci-dessous dans web.config

 <system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />

Cela a pour effet de bloquer toute demande directe au fichier dans le répertoire Views. La requête Angular xhr de ce fichier est bloquée par ceci.

Commentez-le et voyez si les choses fonctionnent. Utilisez ceci avec précaution car cela permet d'accéder à vos fichiers.

Vous pouvez également vérifier sur cette URL d'autres réponses: Erreur: $ compile: tpload n'a pas pu charger le modèle. Statut Http: 404

1
Ashish

Dans mon cas, le problème est que j'ai ajouté des en-têtes par défaut tels que Accept = 'application/json'. Ainsi, mes itinéraires ont soudainement cessé de fonctionner, car ces en-têtes n'étaient pas seulement appliqués à mes appels $ http.post, ils étaient également appliqués à mon routage ...? Bizarre.

0
Suamere

J'ai eu la même erreur, dans mon cas, le serveur Web a été écrit avec le noeud js et l'uri pour obtenir les vues qui se trouvaient dans le chemin spécifié avec $ stateProvider n'a pas été créé, car pour chaque vue/modèle que vous souhaitez afficher une requête http de type Xhr GET est faite. 

Comme l’Uri n’existait pas, j’ai obtenu un code 404, ce qui a amené le navigateur à entrer en rappel qui l’a tué. Assurez-vous que votre serveur renvoie la vue demandée. (Traduit avec google translate)

0
learango