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>
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).
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
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.
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)