我試圖實施ng-show
和ng-hide
的animdated版本;我最初嘗試使用jQueryUI.toggle('slide', …)
,但由於$watch
多次觸發,我的元素切換並立即切換(有時不止一次)。但是我在AngularJS的github問題中看到,那就是$ watch的預期行爲(髒檢查)。
所以我想,好吧,這一點EFF-你是該死的,我會明確地顯示或隱藏,而不是簡單的切換:我打破了下來,檢查$手錶的newValue
的,像這樣的值:
scope.$watch(condition, function myShowHideAction(newValue,oldValue) {
if (newValue !== oldValue) {
if (newValue) {
elm.show("slide", { direction: direction }, "slow");
} else {
elm.hide("slide", { direction: direction }, "slow");
}
}
}
啓動它,我看到了什麼?切換!
在放入幾個控制檯日誌之後,我發現不知何故,我的條件值在$ watch循環期間發生了變化(它的迭代次數是6次而不是一次,但應該既不在這裏也不在那裏)。但是,實際範圍參數的值不會像newValue
那樣發生變化(因爲它不應該)。
這是怎麼回事?
Hazzah!這似乎做到了 - 謝謝!順便說一下,我的地圖是基於Angular-UI的地圖指令(我幾乎沒有改變任何東西 - 我想爲'infoBox'找到/替換'infoWindow',所以代碼主要是他們的)。 – jacob 2013-02-22 18:20:04