当我尝试在家庭控制器中调用方法时,我收到消息Uncaught TypeError:Undefined is not a function
。
或许建议我收到此消息的原因?
findIdpActivities = function (pernr, callback) {
restEndPoint = serviceBase + 'Home/FindIdpActivities';
data = "{'perNr':'" + pernr + "'}";
makeJsonDataAjaxCall(callback);
};
makeJsonDataAjaxCall = function (callback, obj) {
$.ajax({
type: "POST",
url: restEndPoint,
contentType: "application/json; charset=utf-8",
dataType: "json",
data: data,
success: function (data) {
callback(data);
}
});
};
点击按钮后执行方法。
$(document).on("click", "input[name=btnViewActivities]", function (e) {
e.preventDefault();
var value = $(this).parent().find("input[name=hiddenPerNr]").val();
dataService.findIdpActivities(value);
});
这是HomeController中的方法
[HttpPost]
public JsonResult FindIdpActivities(string perNr)
{
viewModel.GetIdpActivities(perNr);
return Json(new
{
Activities = viewModel.IdpActivities
});
}
答案 0 :(得分:3)
当您尝试在定义函数之前调用函数时,会发生这种常见的javascript错误。
例如,虽然此代码按预期工作:
var sayHello= function () {
return 'Hello!'
};
alert(sayHello());
如果你颠倒了语句的顺序,那么“Uncaught TypeError:undefined不是函数”会出现错误:
alert(sayHello());
var sayHello= function () {
return 'Hello!'
};
因此,我建议您仔细检查您的脚本是否正确加载,并且 findIdpActivities 正在作为 dataService 对象的函数正确初始化。