2012-01-25 75 views
1

我正在使用聲明性方法(在HTML中)使用dojo datagrid和JsonRestStore的舊代碼庫。我現在正在嘗試使用更新的dojo.store.JsonRest。混合搭配聲明式和程序式聲明? (Dojo/JS)

當我在HTML中聲明JsonRest和ObjectStore時,它可以工作。

我想使用json.store.Cache作爲我的商店,使用dojo.store.JsonRest和dojo.store.Memory支持它。 json.store.Cache的構造函數有兩個參數。

a)是否有可能在HTML聲明式風格中定義構造函數參數?

我不想觸摸Datagrid的(聲明性)代碼,所以我嘗試在dojo.addOnLoad中設置Grid的存儲。我得到一個奇怪的錯誤在Firebug爲的dojo.js線402實際上是一條評論:

// 5.評估:該模塊經界定定義和裝載機評估了工廠和計算結果。

我的猜測是這個錯誤與dojo.js根本沒有關係,實際上發生在一個封閉的地方(我想我以前見過這個)。

b)這種方式可以混合使用聲明式和程序式嗎?如果是的話,我應該設置網格商店的什麼事件?

回答

2

我正在回答這個問題,因爲我後來想到了。在聲明式和程序式風格的混合和匹配中似乎沒有問題。

我從使用dojo.addOnLoad更改爲dojo.ready,但我不認爲這是問題。

我試圖在datagrid.setQuery的調用中設置datagrid的查詢,然後用datagrid.setStore設置存儲。無論我試過哪個訂單(先查詢或先存儲),它都不起作用。 原來兩者都必須在setStore調用中一起設置。該方法接受查詢作爲其第二個參數。 這解決了我的問題。

+1

你需要接受你自己的答案... – Ted