我最近開始使用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模板。
在此先感謝大家。
我有麻煩與此同樣。只是好奇,你有沒有嘗試過使用模板而不是templateUrl。 – NicolasMoise