0

我正面臨AngularJS指令/我的標籤模型加載問題。我有一個建立表格的指令。所有的頭名,除「操作」之一,被動態地從控制器傳遞建成你可以在下面的摘要中看到:第一次加載時丟失的標籤

<div class="col-xs-12" ng-cloak> 
    <custom-data-table grid-options="ctrl.gridOptions"></custom-data-table> 
</div> 

而且在我的控制器:

function MyController(allInjections) { 

    var ctrl = this; 

    //Load some stuff 

    ctrl.gridOptions = []; 

    function initCtrl() { 

     ctrl.gridOptions = { 
      // all fields 
     }; 

     // some other stuff 
    } 

    initCtrl(); 
} 

該指令的作品大多數情況下,但有時候,主要是第一次加載頁面時,由於某些原因我的標籤沒有加載。看照片。

下圖顯示了您遇到的問題。

table 1

該表形象是什麼,我期待

table 2

我在我的指令增加了一個日誌,看看有什麼我收到這樣的:

function CustomDataTable(allInjections) { 

    var _dirPath = 'table.html'; 

    var directive = { 
     restrict: 'EA', 
     templateUrl: _dirPath, 
     scope: { 
      gridOptions: '=', 
      checks: '=' 
     }, 
     link: linkFunc 
    }; 

    function linkFunc($scope) { 

     console.trace($scope.gridOptions); 

     //do some stuff 
    } 
} 

最後,爲了試圖找出發生的情況並進行調試,我注意到我的指令加載了兩次(我沒有k現在正是爲什麼)當標籤正常工作時。看看日誌

登錄時,當標籤被加載

log 2

我禁用緩存測試標籤沒有被加載以及

log 1

日誌。

回答

0

您可以使用ng-cloak指令。 ngCloak指令用於阻止瀏覽器在加載應用程序時以原始(未編譯)形式簡要顯示AngularJS html模板。檢查此鏈接:https://docs.angularjs.org/api/ng/directive/ngCloak

+0

我已經在我的div中使用ngCloak,正如你可以在html代碼片段中看到的那樣 – kaahxd