2013-06-28 112 views
4

這很奇怪,我不知道爲什麼這個簡單的方案不起作用。在使用jQuery和Backbone後,對Angular來說,我還是相當新的。顯示隱藏Div AngularJs

下面的代碼的基本結構...

<div class="span10" ng-controller="ClientCtrl" ng-hide="addClient"> 
    <button ng-click="addClient = true" class="btn btn-primary"> 
    Add new Client 
    </button> 
</div> 
<div class="span10" ng-controller="ClientCtrl" ng-show="addClient"> 
    <div ng-include src="'views/partials/client.html'"></div> 
</div> 

預期的行爲是,點擊「添加新客戶」按鈕,將顯示第二個div。實際的行爲是第一個div被隱藏(因爲它應該),但第二個div保持隱藏狀態。控制器中沒有控制行爲。

我已經試過它與示波器功能,在控制器中的屬性設置初始和許多其他的東西沒有任何運氣。我究竟做錯了什麼?我已經檢查過,以確定它們在相同的範圍內,並且看起來不是問題。感謝您的幫助,因爲這讓我瘋狂。

+0

當你說「保持隱藏」你檢查:

你必須做這樣的事?嘗試在第二個div中放置一些靜態代碼,看看'ng-include'是否是失敗的,或者確實是'ng-show' ... – callmekatootie

+0

是的,nginclude很好。點擊之前:http://d.pr/i/VIye和點擊後:http://d.pr/i/rSEP – Brandon

回答

12

AngularJS在這種情況下創建兩個單獨的控制器,因爲您已經使用ng-controller屬性映射了兩個控制器。一個控制器內的範圍不影響第二個範圍。如果`NG-include`不工作或做相應的親`div`實際上仍然隱藏

<div ng-controller="ClientCtrl"> 
    <div class="span10" ng-hide="addClient"> 
    <button ng-click="addClient = true" class="btn btn-primary"> 
     Add new Client 
    </button> 
    </div> 
    <div class="span10" ng-show="addClient"> 
    <div ng-include src="'views/partials/client.html'"></div> 
    </div> 
</div> 
+0

這就是答案!我應該意識到這一點,但從來沒有嘗試過。 SO允許時將接受答案。哦,謝謝你。 – Brandon

+0

很高興幫助:) –

+0

是的。控制器不是作爲Angular的共享實例(單例)注入的(儘管服務是!) – blaster