2015-05-01 72 views
0

我目前正在完成從一個集合切換,像這樣的項目的知名度:伍重複切換,初始狀態顯示第一胎並隱藏其餘

.terms ng-repeat="term in terms" 
    h1 ng-click="termOpen = !termOpen" 
    | {{term.name}} 

    .term ng-show="termOpen" 
    p Content blah blah 

.term的默認狀態是隱藏的。點擊標題時,顯示.term的內容。這工作正常,除了我想第一個元素的初始狀態是可見的。

我試過ng-show = '"facetOpen" || "$first"',但後來我無法切換第一項,因此它被隱藏了。

回答

2

嘗試使用ng-init

h1 ng-click="termOpen = !termOpen" ng-init="termOpen=$first" 
+0

是的!這正是我所尋找的,在九分鐘內,當我可以接受這個答案是正確的,我當然會。 –

+0

aahhh,我沒有看到第一個.... –

0

加上一些更多的東西,對charlietfl的回答之上:

  1. 因爲,我想你只想切換元素之一,而不是全部單擊某個部分時,必須將其修改爲:

    h1 ng-click="term.termOpen = !term.termOpen" ng-init="term.termOpen=$first" 
    

現在,會發生什麼是,該項目的termOpen屬性將是undefined(因此false,除第一個之外),下次點擊它將會!undefined如此真實,再次點擊它是!true如此虛假。 如果您使用相同的變量,就像您所做的那樣,然後單擊任何一個部分將會打開所有的部分,我認爲您不想這樣做。

  • 你正在做的:

    ng-show = '"facetOpen" || "$first"' 
    
  • 這將永遠是正確的因爲都是字符串(你把它們用雙引號,棱角分明的人認爲,作爲它應該是:

    ng-show = 'facetOpen || $first' 
    

    其中facetOpen是一個範圍變量。此外,它不能正常工作,因爲第一項始終保持開放狀態,因爲它的條件始終爲真。

    這些還有兩件事你可能要考慮。