2013-09-30 65 views
1

我最近開始使用Angular.JS,並且我已經到達了一個我不知道如何正確處理它的場景。使用ng-if指令的內部html模板的問題

讓我解釋什麼,我已經和我想要做的(我想這是處理這種情況的正確方法):

  • 通過templateUrl加載模板的指令(panelMenu)和用一個屬性定義它自己的控制器(visibilidad)。 (該屬性值應該被收集爲我有工作在服務的結果,但對於例如的難易程度,我會刪除部分)

    .directive('panelMenu', function() { 
    return { 
        restrict: 'E', 
        templateUrl: './partials/panelMenu.html', 
        replace: true, 
        transclude: false, 
        controller: ['$scope', function ($scope) { 
         $scope.visibilidad = false; 
        } ], 
        link: function (scope, element, attrs) { 
    
        } 
    }; 
    }) 
    
  • 模板(panelMenu.html)即由指令加載,該指令使用ng-if附加到指令控制器內部定義的可見性屬性,以便可以添加/刪除html。

panelMenu.html:

<div class="panel-menu" ng-if="visibilidad"> 
<a class="brand" href="#">Menú [Tablet] - Valor {{visibilidad}}</a> 
</div> 

而這正是我從瀏覽器控制檯有:

錯誤:[$編譯:ctreq]控制器 'panelMenu',由指令所要求的「ngIf ',找不到!

我一直在閱讀了很多關於如何做工作NG-如果和範圍......但它應該是NG-是否應該從父範圍(在指令定義控制器)繼承。我對嗎?

順便說一句,我使用的是自定義的指令上的index.html這樣的:

<panel-menu></panel-menu> 

除了主要的問題,我想知道我是否做正確,或者如果NG-如果條件應放在指令標籤(訪問一個我以前提到的獲得的價值服務)上,而不是HTML模板。

在此先感謝大家。

+0

我有麻煩與此同樣。只是好奇,你有沒有嘗試過使用模板而不是templateUrl。 – NicolasMoise

回答