2

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
            });
    }
4

1 回答 1

3

这是一个常见的 javascript 错误,当您尝试在定义之前调用函数时会发生这种错误。

例如,虽然此代码按预期工作:

var sayHello= function () {
    return 'Hello!'
};

alert(sayHello());

如果你颠倒语句的顺序,就会出现“Uncaught TypeError: undefined is not a function”错误:

alert(sayHello());

var sayHello= function () {
    return 'Hello!'
};

因此,我建议您仔细检查您的脚本是否正确加载,以及findIdpActivities是否已正确初始化为dataService对象的函数。

于 2013-10-21T11:09:11.847 回答