Javascript 为什么内部方法';什么是最后一个?
在下面的方法中,我试图获得选中的网格行。顺便说一下,我使用syncfusion组件库。 我的问题是,当我调用grid.rowSelected时,函数的内部最后起作用。所以我不能用ajax传递模型。 原因是什么Javascript 为什么内部方法';什么是最后一个?,javascript,syncfusion,Javascript,Syncfusion,在下面的方法中,我试图获得选中的网格行。顺便说一下,我使用syncfusion组件库。 我的问题是,当我调用grid.rowSelected时,函数的内部最后起作用。所以我不能用ajax传递模型。 原因是什么 function editPackage() { var editPackageModel; var grid = document.getElementById("Grid").ej2_instances[0]; g
function editPackage() {
var editPackageModel;
var grid = document.getElementById("Grid").ej2_instances[0];
grid.rowSelected = function(args) {
console.log(args.data);*// works last*
editPackageModel = args.data;*// works last*
}
$.ajax({
type: "GET",
url: "/Package/Edit",
contentType: "application/json; charset=utf-8",
datatype: "json",
data: editPackageModel,
success: function (result) {
$('#generalModal').html(result);
},
error: function () {
alert("Dynamic content load failed.");
}
});
}
我不确定“grid”的具体情况,我假设您在调用函数之前已经准备好了该元素,所以请尝试以下方法:
var grid = document.getElementById("Grid").ej2_instances[0];//Get node reference.
grid.rowSelected = function (args) {//Setup event listener.
editPackage(args.data);//Pass the data from the event to your function
}
function editPackage(editPackageModel) {//Get the "model" and send ajax
$.ajax({
type: "GET",
url: "/Package/Edit",
contentType: "application/json; charset=utf-8",
datatype: "json",
data: editPackageModel,
success: function (result) {
$('#generalModal').html(result);
},
error: function () {
alert("Dynamic content load failed.");
}
});
}
您所说的“最后工作”是什么意思?我的意思是在ajax之后工作。
rowSelected
可能在用户选择一行时被调用。在那之前没有。您可能希望从该事件处理程序函数内部启动Ajax调用。该事件处理程序打开一个模式。当用户选择一行时,确实会调用rowSelected。但我的问题是在editpackage func中获取所选行。订单应该是这样的。单击编辑-获取选定行-打开模式-将选定数据绑定到模型。