2016-07-15 9 views
0

Ich habe ein Problem beim Laden mehrerer Vorlage durch die Direktive Wo ich einige Wert an den Controller-Bereich übergeben und in Direktive Ich überprüfe den Wert und relativ laden Sie die HTML auch.Problem: Laden mehrerer Vorlage durch Direktive

1. html:

<a class="col-xs-3" > <div stop-watch template="topic-view" name="oCandidateDetails.name" time-of-interview="oCandidateDetails.doi" class="stop-watch"></div> </a> 

2. html:

<div stop-watch template="candidate-view" name="candidateInfo.name" time-of-interview="candidateInfo.dateOfInterview" class="stop-watch"></div> 

Richtlinie:

angular.module('iSourcingApp.tpModule') 
.directive('stopWatch', function() {debugger 
    return { 
     restrict: 'A', 
     templateUrl: '<ng-include src="getTemplateUrl()"/>', 
     replace: false, 
     scope: { 
      name: "=", 
      timeOfInterview: "=", 
      template:"=" 
     }, 
     controller: function($scope, $interval) {debugger 
      $scope.getTimeRemaining = function(endtime) { 
       $scope.t[$scope.name].total = Date.parse(endtime) - Date.parse(new Date()); 
       $scope.t[$scope.name].seconds = Math.floor(($scope.t[$scope.name].total/1000) % 60); 
       $scope.t[$scope.name].minutes = Math.floor(($scope.t[$scope.name].total/1000/60) % 60); 
       $scope.t[$scope.name].hours = Math.floor(($scope.t[$scope.name].total/(1000 * 60 * 60)) % 24); 
       $scope.t[$scope.name].days = Math.floor($scope.t[$scope.name].total/(1000 * 60 * 60 * 24)); 
      } 
      $scope.initializeClock = function(endtime) { 
       $scope.t = {}; 
       $scope.t[$scope.name] = {}; 
       $scope.updateClock = function() { 
        $scope.getTimeRemaining(endtime); 
        $scope.t[$scope.name].hours = ('0' + $scope.t[$scope.name].hours).slice(-2); 
        $scope.t[$scope.name].minutes = ('0' + $scope.t[$scope.name].minutes).slice(-2); 
        $scope.t[$scope.name].seconds = ('0' + $scope.t[$scope.name].seconds).slice(-2); 

        if ($scope.t[$scope.name].total <= 0) { 
         clearInterval($scope.timeinterval); 
        } 
       } 
       $scope.updateClock(); 
       $scope.timeinterval = $interval($scope.updateClock, 1000); 
      } 
      $scope.initializeClock($scope.timeOfInterview); 
      //function used on the ng-include to resolve the template 
      $scope.getTemplateUrl = function() {debugger; 
       //basic handling 
       if ($scope.template == 'candidate-view') { 
        return './tpModule/views/stopWatchView.html'; 
       } 
       if ($scope.template == 'topic-view') { 
        return './tpModule/views/topicStopWatchView.html'; 
       } 
      } 
     } 
    }; 
}); 

Das Problem hier ist, ich erhalte eine Fehlermeldung,

angular.js:13708 Error: [$compile:tpload] Failed to load template: <ng-include src="getTemplateUrl()"/> (HTTP status: 404 Not Found) 

ich verstehe nicht, warum ich diesen Fehler hier bekomme

jede Hilfe wird sehr geschätzt.

Antwort

0

Es ist nicht templateUrl,

template: '<ng-include src="getTemplateUrl()"/>', 
0

Ich denke, das Problem in Ihrer URL, um diesen Fehler zu beheben, stellen Sie sicher, dass die URL der Vorlage richtig geschrieben ist und löst

Nur absolute URL zu korrigieren versuchen Sie dies

'../tpModule/views/stopWatchView.html'