2015-01-20 72 views
1

我在網頁上有第一個div標籤。它包含一些角度範圍變量。我想用第二個div標籤替換它,當發生某些事情時,它也包含一些其他的角度範圍變量。以角替代html

我嘗試的第一種方法是使用「ng-show」。我在html上添加第一個和第二個div,並將第一個div標籤設置爲可見,第二個div標籤使用ng-show和ng-hide隱藏。

<div ng-show="showFirstDiv"> 

</div> 

<div ng-hide="showFirstDiv"> 

</div> 

當我改變從true$scope.showFirstDivfalse相關控制器內,並調用$scope.$apply(),所述ng-showng-hide屬性值變化(在瀏覽器中使用檢測元件之後)。

但是,這兩個html標籤的可見性沒有改變。即使ng-show="false"第一個div也沒有消失,第二個div也沒有出現,即使是ng-hide="false"

我該怎麼辦?有沒有更好的方式來替換一個div與另一個角度,而這兩個div都包含角度範圍變量?

+1

你做錯了。你爲什麼不用http://plnkr.co/向我們展示你的問題? – maxisam 2015-01-20 22:05:51

+0

我認爲你的方法是正確的,確保你設置布爾值false/true,而不是「false」或「true」。下一步是plnkr。 – ginman 2015-01-20 22:10:48

+1

這是做到這一點的正確方法,如果它正常工作,您不需要'$ scope。$ apply()'。你介意展示更多的代碼嗎? (例如,在HTML中定義了控制器的地方,控制器JS本身) – rwacarter 2015-01-20 22:13:18

回答

1

你試過ngIf

ngIf指令根據{expression}刪除或重新創建一部分DOM樹。

<div ng-if="showFirstDiv"> 

</div> 

<div ng-if="!showFirstDiv"> 

</div> 
+0

'ng-show'的工作原理也是如此,但他確實需要在第二個'div'中使用'!showFirstDiv'否定符號來使兩者「交換」出來。 – Mordred 2015-01-20 23:28:23