Angular JS Erreur: $compiler:tpload: Échec du chargement de modèle:

Donc je suis en train de charger le modèle dans mon directive. Cette directive est réutilisable. Mais je suis l'échec du chargement du modèle. J'ai eu d'autres modèles qui sont chargés et le travail correctement.

La erreur que je reçois est :

GET /ClassificationToolkitForGrails/classificationviewer.html 404 (Not Found) angular.js:8521
Error: [$compile:tpload] Failed to load template: classificationviewer.html

La javascript fichier contenant la directive:

/**
 * 
 */
var classificationViewModule = angular.module('ald.classificationview',[]);

classificationViewModule.factory('classificationAPI',function(){
    return {
        getClassification:function($http, artifactId){
            //TODO add URL
            var url = "/Classification/getInfo?artifactId="+artifactId
            return $http({
                method: 'GET',
                url: url
            });
        }
    };
});

/*classificationViewModule.controller('testclassification',['$scope','$http',function($scope,$http){
    $http.get("/Classification/getInfo?artifactId=6450").success(function(data){
        $scope.classification = data;       
    })
}]);*/

classificationViewModule.directive('classificationview', function () {
    return {
        restrict: 'EA',
        scope: {},
        replace: true,
        link: function ($scope, element, attributes) {

        },
        controller: function ($scope, $http, classificationAPI) {

            classificationAPI.getClassification($http).success(function(data,status){               
                //TODO
                $scope.artifactClassification = data;
            }).error(function(data,status){
                if (404==status){
                    alert("no text");
                } else {
                    alert("bad stuff!");
                }
            });            
        },
        //TODO add template url
        templateUrl: "classificationviewer.html"
    };
});

La modèle fichier :

<div>

Hello world

{{artifactClassification}}


</div>

La index.html fichier :

<

!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <meta name="layout" content="main"/>
    <title>Classification Toolkit for Grails</title>
    <script type="text/javascript">
        angular.module('classtoolkitApp', [
            'ald.classificationview'
        ]).controller('index', function ($scope) {
        });
    </script>

    <asset:javascript src="ald/classificationview/classificationview.js"/>
</head>
<body >

<div ng-app="classtoolkitApp" ng-controller="index">   

    classification
    <classificationview artifactId=6450/>   

</div>

</body>
</html>
Vrai que, vous l'esprit que templateUrl a besoin d'un chemin de la racine de votre application.
Vous ne savez pas si je l'ai suivi. Si le modèle est dans un plugin qui est utilisé par ce projet.
Oui et note que angulaire est la recherche de la .fichier html à la racine de votre webapp. Si vous avez placé le plugin dans un dossier quelque part, vous devez spécifier le chemin complet depuis la racine. Dire /common/directives/someplugin/classificationviewer.html.
vous pouvez aussi mettre le modèle html dans un ng-template balise de script avec le même ID que templateUrl. Si angulaire trouve, il est là, il ne fera pas à une requête ajax pour l'obtenir
Avez-vous réussi à résoudre ce problème?

OriginalL'auteur krs | 2014-09-15