需要設置元素的屬性(isOpen)。當我將這個值「硬編碼」爲真或假時,它可以工作,但是當我從「測試」方法獲得值時,它會設置值和圖標的變化,但手風琴不會打開和關閉。使用Angular或Javascript設置屬性
_title = d.create('h1')
.setClasses(['h2', 'pull-left'])
.setAttributes([['id', ++number + "values"], ['ng-click', 'isOpen = test(isOpen)'], ['ng-init', 'isOpen = true']])
.setInnerHTML(_titleHtml)
.toElement();
這是它調用的方法:
scope.test = function (isOpen) {
isOpen = !isOpen;
return isOpen;
}
從檢查的編譯後的代碼如下:我已閱讀有關使用$應用和$編譯
但不知道如何使其工作。
欣賞幫助。
更新:
我包括更多的解釋來幫助你。我需要將isOpen值發送到測試方法,因爲我需要在其他地方實現其他邏輯,具體取決於isOpen在當時是true還是false。如果單擊了另一個按鈕,如果手風琴已經打開,則什麼也不做如果關閉拓展等
你爲什麼初始化模板中的價值? 在scope'isOpen = true範圍內執行它,然後你不需要'ng-init'。 –
您可以使用設置器更新您的值,但Angular在檢測到更改之前不會應用效果。在循環內部觀察和評估每一個變化。調用$ apply會導致循環播放,檢測到變化,然後......播放效果。 – Nico
@Nico如果有人需要使用$應用程序意味着正在做的東西不完全在角度的方式! –