2016-06-17 60 views
2

ng - 如果有時會導致我的頁面上的鏈接在加載時顯示,然後消失。ng-if導致鏈接顯示一秒鐘然後消失。如何防止顯示

該鏈接不應該顯示,我假設ng-if語句還沒有被處理,但第二次我能夠看到它。

有沒有辦法阻止鏈接或元素顯示?

我也猜測currentClass對象尚未加載,所以ng-if無法評估,但我試圖將它默認爲隱藏直到ng-if可以解決。

<span ng-if="isFaculty && !currentClass.courseInformation.IsCustomCourse"> 
<a ng-href="{{$window.BasePath}}lms/class/{{$stateParams.classid}}/instructorguide/download"> 
<span class="cec-msword-icon"></span>Download Instructor Guide</a> 
<span>| </span> 
</span> 
+2

看看ng-cloak(https://docs.angularjs.org/api/ng/directive/ngCloak) –

回答

7

使用ng-cloak。它是這樣說:

CSS:

[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak { 
    display: none !important; 
} 

HTML:

<div ng-cloak> ... </div> 

你的情況,這將是:

<span ng-cloak ng-if="isFaculty && !currentClass.courseInformation.IsCustomCourse"> 
<a ng-href="{{$window.BasePath}}lms/class/{{$stateParams.classid}}/instructorguide/download"> 
<span class="cec-msword-icon"></span>Download Instructor Guide</a> 
<span>| </span> 
</span> 

記住:

指令可應用於元素,但首選的用法是將多個ngCloak指令應用於頁面的小部分,以允許逐步呈現瀏覽器視圖。

0

我也有類似的事情發生在我身上, 我最終發現,這是一個特點,角度與模塊NG-動畫提供,

explanation

什麼基本情況是,當ng-if語句決定一個元素需要消失而不是僅僅刪除它,angular首先添加到ng-leave類的元素,並在片刻之後刪除該元素,這樣做是爲了讓您添加動畫到元素beeing從你的DOM中刪除,

在這樣的元素獲得一個類,立即刪除它

.ng-leave { 
     display: none; 
     } 

我加入了CSS選擇器解決了這個問題。

0

在這裏,鏈接似乎是可見的,因爲DOM對象仍然包含鏈接元素,ng-if只在頁面加載後才隱藏CSS調用。所以最好保留ng-cloak CSS類,因爲這會顯示元素處理直到dom爲加載的頁面更改。

相關問題