gpt4 book ai didi

javascript - Dojo Javascript 变量范围

转载 作者:行者123 更新时间:2023-12-03 11:34:48 25 4
gpt4 key购买 nike

我正在使用dgrid我正在尝试在外部设置数据存储。当页面加载时,我调用 aliasTicket.load() 来创建网格。在网格加载时,datasource 为空。执行查询时,setAliasSource(aliasData); 被设置。

没有错误,但网格仍然是空的。 aliasStore 正在使用数据进行更新,但即使刷新网格后,它也不会反射(reflect)在网格上。查询后如何获取网格中反射(reflect)的数据?

Javascript对象

   var aliasTicket = (function (){

var aliasData = [];

require([ "dojo/store/Observable", "dojo/store/Memory"]);
var aliasStore = new dojo.store.Observable(new dojo.store.Memory({
data: aliasData,
idProperty: "id"
}));

return{

load:function(){

require([
........

], function(declare, Memory, OnDemandGrid, ColumnSet, Selection,
selector, Keyboard, DijitRegistry, editor, ColumnHider,
registry, Observable,lang) {

aliasData = this.aliasData;

var Store = this.aliasStore = new dojo.store.Observable(new dojo.store.Memory({
data: aliasData,
idProperty: "id"
}));

console.log(Store);

var CustomAliasNameGrid = declare([OnDemandGrid, selector, Selection, Keyboard, editor, DijitRegistry, ColumnHider]);

var aliasNameGrid = new CustomAliasNameGrid({
store: Store,
columns: {
id: {
label: "Id",
field: "id",
hidden: true,
autoSizeColumn: true
},

employeeTicketId: {
label: "Employee Ticket Id",
field: "employeeTicketId",
hidden: true,
autoSizeColumn: true
},

chkBox: selector({}),


aliasName: {
label: "Alias Names",
field: "aliasTicketName",
autoSizeColumn: true,
formatter: function(str) {
return str.replace(/\w\S*/g, function(txt) {
return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
});
}
}

},
selectionMode: "none",
loadingMessage: "Loading data...",
noDataMessage: "No results found....",
allowSelectAll: true
}, "aliasNameGrid");



aliasNameGrid.refresh()

});

},

setAliasSource: function (data){
console.log(data);
this.aliasSource = data;

},

setAliasData: function (data){
this.aliasData = data;
},

getAliasSource: function (){

return this.aliasSource;
}

};

})();

设置数据存储数据

aliasData = [{.....},
{.....},
{......];


require(["dijit/dijit"]);
aliasTicket.setAliasSource(aliasData);
dijit.byId('aliasNameGrid').refresh();

最佳答案

您将“this.Store”设置为对象数组,而不是真正的“dojo store”对象。按照您的代码,我看不到您实际在哪里使用“this.Store”。在网格代码中,我确实看到了一个名为“Store”的局部变量。

所以我不确定我是否遵循您的代码示例,但是,您应该“设置”网格的存储,然后刷新它。像这样的东西。

 setAliasSource: function (data){
console.log(data);
this.Store = data;
dijit.byId('aliasNameGrid').set("store",new dojo.store.Observable(new dojo.store.Memory({ data: data,idProperty: "id"}));
dijit.byId('aliasNameGrid').refresh();

},

关于javascript - Dojo Javascript 变量范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26564146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com