4
我在我們的應用程序的幾個頁面上使用相同的dijit.Tree視圖,並且希望將Cookie保存爲服務器名稱而不是文件夾名稱。
現在我已經有了3頁和3個餅乾,每個餅乾都擁有自己關於樹狀態的信息,這有點煩人。爲所有頁面設置dijit.Tree cookie
任何方式來實現這一目標?我在API上唯一發現的Cookie是我可以設置cookieName
並打開/關閉Cookie。
我在我們的應用程序的幾個頁面上使用相同的dijit.Tree視圖,並且希望將Cookie保存爲服務器名稱而不是文件夾名稱。
現在我已經有了3頁和3個餅乾,每個餅乾都擁有自己關於樹狀態的信息,這有點煩人。爲所有頁面設置dijit.Tree cookie
任何方式來實現這一目標?我在API上唯一發現的Cookie是我可以設置cookieName
並打開/關閉Cookie。
似乎Tree.js
不會讓您設置cookie的屬性。所以我不得不改寫爲Tree
的_saveState()
方法:
var treeControl = new dijit.Tree({
model: treeModel,
showRoot: false,
openOnClick: false,
cookieName: "OrganizationUnitTreeState",
_saveState: function(){
// summary:
// Create and save a cookie with the currently expanded nodes identifiers
// Overre the default saveState function, so we can set the cookie path
if(!this.persist){
return;
}
var ary = [];
for(var id in this._openedItemIds){
ary.push(id);
}
dojo.cookie(this.cookieName, ary.join(","), {expires:365, path:"/"});
},
/* Many more methods */
});
它的代碼的最後一行有沒有做的伎倆。 dojo.cookie()
需要一個鍵/值對的列表,它將被轉換成cookie屬性,所以如果你想要設置任何其他屬性,這就是你要做的。
非常有用。 '如果這是一個用於改變站點範圍內的樹持久性的官方API,那會很好。您可以提交增強權證。 – 2010-12-21 09:54:36