这个变量可以在onContext函数中访问,但是我想将获取 AJAX json结果分配给网格的存储对象。网格是类似于grid:{store:“some-Json”}的对象,类似于示例
define([
"dojo/_base/declare",
"dojo/when",
"aps/_View",
"aps/xhr"
], function(
declare,
when,
_View,
xhr
) {
var page, grid, self, contextId,myResult,samp;
return declare(_View, {
init: function() {
self = this;
return ["aps/Grid", {
id: "srv_grid",
selectionMode: "multiple",
columns: [{
field: "id",
name: "Id"
}]
},
];
}, // End of Init
onContext: function(context) {
this.grid = this.byId("srv_grid"); //working
xhr.get("/aps/2/resources/" + aps.context.vars.device.aps.id + "/getresource").
then(function(data){
myResult=data;
this.grid.params.store=data; //got error here this.grid is undefined
this.grid.store=data; //got error here this.grid is undefined
}
),
this.grid.refresh();
},
}); // End of Declare
}); // End of Define
init
是首先调用的第一个方法,然后onContext
方法调用..此字在该函数中可用,并且this
变量具有此.grid属性,此.grid属性在xhr.get()
中不可访问。此属性在xhr.get()
中已更改。我希望在xhr.get()
函数中访问此的所有属性。因为我想把 AJAX 结果赋给this.grid.store
和this.grid.params.store
属性
2条答案
按热度按时间jdg4fx2g1#
您可以使用
或
“this”总是给你在那个上下文中的属性或对象,所以在xhr.get中,你可以访问xhr中所有可用的东西,但是它之外的东西是不可访问的。
iqxoj9l92#
您必须使用dojo/_base/lang
->
hitch函数来设置函数将执行的范围。在您的示例中,
this.grid.params...
引用then(xhr),因此它将返回一个未定义的错误因此,您必须在模块范围内执行函数,如下所示:
在重要的
dojo/_base/lang -> lang
之后