对于 js,我是个菜鸟,今天我遇到了一些我不太了解的 js,但我很想了解。你能解释一下吗?涉及剑道,但问题是纯js。
我有一个嵌套网格,例如。每行都可以扩展到其他网格,并且每个网格都有自己的数据源。当用户单击时,我通过下面的方法一一填充数据源,当它从创建调用接收到异步响应时,我遇到了强制数据源读取的问题。(调用 read 是非常不正确的事情,但是 Kendo 有自己的错误 - 这里不是重点。)。我的问题是,我没有调用 read() 的实例,该方法仅返回数据源并将其分配给网格,当事件返回时,我找不到任何可以得到正确的引用数据源实例来自。这是这里不同的上下文。
为了解决这个问题,我在构建数据源的方法中添加了一个数据源变量,然后我返回变量而不是数据源,这是同一回事。然而,这有助于有一些东西可以调用有问题的 read() 。现在在我的创建处理程序中,我在初始化期间在方法中返回的变量上调用 create。好吧,它可以工作,但我不确定每个数据源是否在 innit 之后都在其自己的实例上调用 read ?
function _getDatasource() {
var datasource = new kendo.data.DataSource({
transport: {
read: {
url: serviceBaseUrl + "ReadQuestionnaire",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
},
create: {
url: serviceBaseUrl + "CreateQuestionnaire",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
complete: function (jqXhr, textStatus) {
if (CheckForExceptions(jqXhr, textStatus) == false) {
// this is the variable I am not sure about
// after innit does this always refers to this same datasource ?
datasource.read();
}
}
}
}
});
return datasource;
}