我無法獲得ng-if以在指令內進行評估。我第一次調用一個返回布爾值的方法,但無論結果是什麼,ng-if都不會得到結果,它總是計算爲false。ng - 如果不在內部指令中進行評估
要嘗試並指出問題,我嘗試了一個簡單的內聯表達式(下面),但是即使這樣也總是計算爲false。當我刪除ng-if時,div顯示。我究竟做錯了什麼?
.directive('handsUpVideoOverlay', function() {
return {
restrict: 'E',
replace: true,
scope: false,
template: '<div class="handsOffOverlay" ng-if="1>0">' +
'</div>',
link: function($scope) {
}
};
})
UPDATE
此代碼工作完全作爲一個獨立的jsfiddle。看起來這個問題與我將這個指令添加爲另一個指令的孩子的事實有關。父指令是第三方,並且手動轉換它的孩子。
UPDATE
好我得到了這個工作。問題在於父指令刪除了任何子指令,然後將其添加回去而不編譯它們。我不得不把我自己的第三方父指令的拷貝,並在鏈接功能更改此:
// Make transcluding work manually by putting the children back in there
ng.element(element).append(oldChildren);
這樣:
// Make transcluding work manually by putting the children back in there
for(var i = 0; i < oldChildren.length; i++) {
var template = oldChildren[i].outerHTML;
var linkFn = $compile(template);
var content = linkFn($scope);
$element.append(content);
}
感謝快速反應,但仍不爲我工作。只有你在代碼中可以看到的區別是明確的註釋方括號已被刪除。問題必須是上下文相關的。我刪除了ng-if和div節目。我完全複製和粘貼你的代碼,同樣的問題。 –