0

我有一個問題,templateUrl:部分的角度指令。 我想設置一個動態路徑,但它似乎不工作,我無法弄清楚。我檢查了語法,並且所有內容似乎都是結帳的,它只是不會從該URL拉取模板。AngularJS V1.4.7指令templateUrl動態路徑

這裏是我的指令代碼:

var app = angular.module('docMan', ['ui.sortable']); 
 

 
//global variable 
 

 
app.run(['$rootScope','getResourceURL', function($rootScope, getResourceURL){ 
 

 
\t getResourceURL('FOPS_Resource').then(function(result){$rootScope.FOPSbaseURL = result; 
 
\t }, 
 
\t \t \t \t \t \t function(error){$scope.error = result;}) 
 

 
\t 
 
}]); 
 

 
//Handle to grab SF info about the Static Resource base URL 
 
app.factory('getResourceURL', ['$q','$rootScope', function($q, $rootScope){ 
 

 
\t \t return function (inputString) { 
 

 
\t \t \t var deferred = $q.defer(); 
 

 
\t \t \t Visualforce.remoting.Manager.invokeAction(
 
\t \t \t \t 'FO_Manager.GetResourceURL', 
 
\t \t \t \t inputString, 
 
\t \t \t \t function(result, event){ 
 
\t \t \t \t \t $rootScope.$apply(function(){ 
 
\t \t \t \t \t if(event.status) { 
 
\t \t \t \t \t \t deferred.resolve(result); 
 
\t \t \t \t \t } else { 
 
\t \t \t \t \t \t deferred.reject(event); 
 
\t \t \t \t \t } 
 
\t \t \t \t }) 
 
\t \t \t }, 
 
\t \t \t {buffer: true, escape: true, timeout: 30000} 
 
\t \t); 
 
\t \t return deferred.promise; 
 
\t } 
 
}]); 
 

 
app.directive('sideNav', function($rootScope){ 
 

 
\t return{ 
 

 
\t \t restrict: 'E', 
 
\t  scope: { 
 
\t  \t info: '=' 
 
\t  }, 
 
\t  templateUrl: function($rootScope){ return $rootScope.FOPSbaseURL + '/js/custom/directives/sideNav.html';} 
 

 
\t }; 
 
});

然後當我把標籤<sideNav info="SideNav"></sideNav>其中SideNav是周圍沒有什麼控制的範圍內發生的模板不被拉出。

這裏是模板:`

    <li class="mainCat"> 
         <a href="#" id="CatHeader"> 
          <i class="{{item.displayIcon}} left-bar"></i> 
          <span ng-bind-html="item.label | html"></span> 
         </a> 
         <ul class="subCat"> 


          <li ng-repeat="subItem in item.docTypes"> 
           <a href="#" > 
           <i class="fi-folder"></i> 
           <span ng-bind-html="subItem.Name | html"></span> 
           </a> 
          </li> 


         </ul> 
        </li> 

`

對此事的任何幫助將不勝感激。

更新:

所以現在幸虧下面的東西幫助做顯示器,但現在問題是,$rootScope.FopSbaseURL不在這個'app.directive(「foSidenav」正確填寫,函數($ rootScope ){

return{ 

    restrict: 'E', 
    scope: false, 
    templateUrl: function(){ 

     $rootScope.snipSideNav = $rootScope.FOPSbaseURL + '/js/custom/directives/sidenav.html'; 
     return $rootScope.snipSideNav; 


    } 
}; 

}); ` 這就是我想要的rootScope但它不會在templateURL拉

+0

<side-nav info="SideNav"></side-nav>

更多信息你看,至少應用程序試圖與HTTP請求或您的問題只缺$ rootScope勾你的模板? – Appeiron

回答

2

從AngularJS文檔:

角正常化元素的標籤和屬性的名稱確定 哪些元素匹配其指令。我們通常通過其區分大小寫的camelCase標準化名稱(例如 ngModel)來指示 指令。但是,由於HTML不區分大小寫,我們通過小寫形式在DOM中引用 指令,通常在DOM元素(例如ng-model)上使用 虛線分隔的屬性。

你應該使用這樣的:https://docs.angularjs.org/guide/directive

+0

對不起,試圖幫助,但我第一次誤讀了代碼... – Claies

+0

沒問題:)我意識到它不僅僅作爲標籤名稱,它應該是任何指令在視圖中使用,我正在編輯它。我最初離開了'SideNav',因爲我不知道它是否意味着要觸發該指令,或者是他想要使用的其他類型的參考。 –

+0

所以命名的東西幫我解決了一個問題,不是它顯示的東西,但現在我有另一個問題 – Tekill