2012-11-26 55 views
2

使用敏捷工具來生成一個網格,我試圖讓一個網格的自動重裝,但我想不出如何:I/敏捷工具包:如何​​自動重新加載電網

挖成JS( )函數看到的第一個參數是$,但是,如何設置一個間隔?像按鈕單擊事件

刷新是好的,但我需要設置重載每x秒。

回答

1

確定這裏是完整的測試,例如,你應該怎麼做。

首先,我得承認,這ATK4沒有的setInterval並在大學加入()庫clearInterval函數,但已有的setTimeout。我添加了setInterval和clearInterval並在Github中進行了請求(https://github.com/atk4/atk4/pull/173)。我希望羅馬人會接受,但如果沒有,那麼你總是可以在你自己的JS庫中添加這些函數。

所以這裏是代碼:

$g = $this->add('Grid'); 
$this->js(true)->univ()->setInterval(
    $g->js()->reload()->_enclose() 
,3000); 

或者你甚至可以執行這樣的多個獨立功能:

$this->js(true)->univ()->setInterval(
    $g->js(null,array(
     $g->js()->reload(), 
     $g->js()->univ()->successMessage('Reloaded...') 
    ))->_enclose() 
,3000); 
這裏

關鍵部分是 - > _圍()方法,它會將您的JS鏈到匿名JS功能。

+0

是的,這正與一個小調整更準確!正如你所說,這只是重新加載網格一次。但是,如果您將相同的代碼(使用$ this而不是$ g)放入單獨的擴展網格類中,它會永久地重新加載網格!由於 – user1853796

+0

也許setTimeout的是不夠的,如果你加入這個JS爲電網這是重裝的一部分,每個重裝後再次執行。 我沒有測試過這一點,但也許你可以改變線$這個 - > JS(真) - >大學() - >的setInterval(...),以$ G-> JS(真) - >大學() - >的setInterval(...)。我的意思是 - 添加JS作爲網格的一部分...現在沒有時間來測試。 – DarkSide

+0

如果這個pull請求(https://github.com/atk4/atk4/pull/173)被接受,那麼univ() - > setInterval(不僅是setTimeout)將可用,然後上面的代碼示例應該每隔X秒。我測試了它,它對我來說工作得很好。 – DarkSide

0

Javascript代碼:

setInterval("func()",1000); 

這將調用func()功能每1000毫秒

+0

你好,感謝你的答案。我知道Jscript和JQuery通常使用setInterval和setTimeout的方式,但我無法想象如何將它與敏捷工具箱框架集成;這是我的一點:) – user1853796

+0

哈哈沒關係,是你的問題,下一次 – Weacked