Extjs之两个JS页面直接的对象传递问题

一个js为grid表格,要选取其中一行数据,跳转时传递到另一个JS中,并能获取对象的值。

我把选中的记录读取出来通过cookie传递
1)var record=examdatagrid.getSelectionModel().getSelected();
record显示是对象,所以Ext.util.Cookies.set("valueJson",Ext.encode(record));
运行时显示:uncaught RangeError:Maximum call stack size exceeded(应该是Ext.encode(record)的问题)
2)我把record先转成array再传值:

var record=examdatagrid.getSelectionModel().getSelected();
var arr=[];
arr.push(record.data);
Ext.util.Cookies.set("valueJson",Ext.encode(arr));
接收页面:var record=Ext.util.Cookies.get("valueJson");
数据能显示出来,但是不知道应该怎么去读这一串数据...

求助目标:解决这两个问题并给予解释,要是有更好的方法就最好了O(∩_∩)O

同一页面的JS上下文是相同作用域的,

你的应该是不同页面间传值、所以借用了cookies;

//接收页面:
var record=Ext.util.Cookies.get("valueJson");
//然后 拿个record列名自己看看
var obj=Ext.decode(record);
alert(obj.colName);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-06

更好的方法:

    定义全局变量,存放var record=examdatagrid.getSelectionModel().getSelected();

    通过函数的参数传递,比如

    var record=examdatagrid.getSelectionModel().getSelected();

    fun1(record);

    ------------------------另一js

    function fun1(record){

        record.data;

    }

第2个回答  2015-10-07
同一页面的JS上下文是相同作用域的,
你的应该是不同页面间传值、所以借用了cookies;

1
2
3
4
5

//接收页面:
var record=Ext.util.Cookies.get("value<a href="https://www.baidu.com/s?wd=Js&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Y3nHPhmywWmWI9nyw-mvR30ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1RdPWR4PHRYPs" target="_blank" class="baidu-highlight">Js</a>on");
//然后 拿个record列名自己看看
var obj=Ext.decode(record);
alert(obj.colName);