我在我们的应用程序中的几个页面上使用相同的dijit.Tree视图,并且我希望为服务器名称而不是文件夹名称保存cookie。
现在我有3页和3个cookie,每个都有自己的树状态信息,这有点烦人。
有任何方法可以实现这一目标吗?我在API中找到的唯一内容就是我可以设置cookieName
并打开/关闭Cookie。
答案 0 :(得分:4)
似乎Tree.js
不允许您设置Cookie的属性。所以我只需要覆盖_saveState()
的{{1}}方法:
Tree
这是最后一行代码。 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 */
});
获取一个键/值对的列表,这些键将被转换为cookie属性,因此如果您想要设置任何其他属性,那么就是这样做的。