javascript - 为什么内部方法的内部最后执行?
问题描述
在以下方法中,我试图获取网格选定的行。顺便说一句,我使用了syncfusion组件库。当我调用 grid.rowSelected 时,我的问题是内部函数最后起作用。所以我不能在ajax中传递模型。它的原因是什么?
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.");
}
});
}
解决方案
我不确定“网格”到底是什么情况,我假设您在调用函数之前已经准备好该元素,所以试试这个:
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.");
}
});
}
推荐阅读
- c# - SQL 中的 C# Web API 数据模型返回重复的行
- python - 定义选项时Python单击包没有此类选项错误
- c++ - 如何在函数/方法中使用 sf::window
- sql - 如何对具有匹配 ID 的字段值求和?
- css - 应该如何格式化我的 scss 类名来达到这个效果?
- javascript - c++函数的执行与js函数有什么不同?
- python - 我的子类无法从 Python 中的父类正确继承
- vue.js - 如何使用 $nextTick 在 vue.js 中渲染 Plotly 图表
- bash - 如何使用 sed 在最后一次出现的字符串的最后一个字符之前添加一个单词?
- android - 来自图像颤动火力基础的文本识别