当前位置: 首页 > 面试题库 >

AngularJS错误:fnPtr不是函数

艾雪风
2023-03-14
问题内容

我正在尝试编写示例AngularJS和SpringMVC项目。spring方法可以正常工作,但是我的站点控制器中的函数声明存在问题。我的应用应该从文本输入中返回一个单词,但是当我单击按钮时,出现了以下错误:

[13:23:58.900] "Error: fnPtr is not a function
parser/_functionCall/<@http://localhost:8080/example/resources/js/Angular/angular.js:6542
ngEventDirectives[directiveName]</</</<@http://localhost:8080/example/resources/js/Angular/angular.js:13256
Scope.prototype.$eval@http://localhost:8080/example/resources/js/Angular/angular.js:8218
Scope.prototype.$apply@http://localhost:8080/example/resources/js/Angular/angular.js:8298
ngEventDirectives[directiveName]</</<@http://localhost:8080/example/resources/js/Angular/angular.js:13255
createEventHandler/eventHandler/<@http://localhost:8080/example/resources/js/Angular/angular.js:2095
forEach@http://localhost:8080/example/resources/js/Angular/angular.js:130
createEventHandler/eventHandler@http://localhost:8080/example/resources/js/Angular/angular.js:2094
"

这是我的index.html:

<!DOCTYPE html>
<html lang="en" ng-app="Apken">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="resources/js/Angular/angular.js"></script>
<script src="resources/js/controler.js"></script>

</head>
<body ng-controller="theNamer">

<div class="input-append">
    <input style="width:358px;" class="span2" type="text" ng-model="myName" required min="1" />
    <button class="btn btn-primary" ng-disabled="!myName" ng-click="send()">Click!</button>
</div>
<ul>
<li  ng-repeat="name in names">{{name}}</li>

</ul>

</body>
</html>

和controller.js:

function theNamer ($scope,$http){
    $scope.myName='aa';

    $scope.fetchList=new function()
    {
        $http.get('ca/list.json').success(function(thList){
            $scope.names = thList;
        });
    }

        $scope.send=new function()
        {

            $http.post('ca/set/3').success(function(){

            $scope.fetchList;

            });

        }
        $scope.fetchList;


}

var Apken = angular.module('Apken',[]);
Apken.controller('theNamer', theNamer);

我注意到,这一定是ng-click值中的函数声明存在某种问题。在现场启动时,controler.js可以正常运行,但是当我单击该按钮时它会崩溃。


问题答案:

我已经测试过您的代码。使用AngularJS 1.0.7,替换后错误消失

$scope.send = new function() {

$scope.send = function () {

同样适用于fetchList

我猜您混合了两种语法function(*args*) { *body* }new Function(*args*, *body*)。检查MDN:功能。

您还必须更改代码才能fetchList正确调用您的代码:

function theNamer($scope, $http) {

        $scope.myName = 'aa';

        $scope.fetchList = function() {

            $http.get('ca/list.json').success(function(thList) {

                $scope.names = thList;

            });

        };

        $scope.send = function() {

            $http.post('ca/set/3').success(function() {

                $scope.fetchList();

            });

        };

        $scope.fetchList();

}


 类似资料:
  • 问题内容: 我已经建立了一个工厂来处理我的控制器的功能,但是不知何故,控制器会在其中一个功能上返回错误: 错误:Auth.getUser(…)。成功不是函数@ http:// localhost:8080 / app / controllers / mainCtrl.js:10:1 … 我不知道这是怎么回事,其余功能似乎工作正常? 主控制器: 问题答案: 请参阅$ http服务文档中的 “ 弃用声

  • 问题内容: 收到此错误: angular.min.js:122 TypeError:$ http.get(…)。success在Object.invoke(angular.min)的new(app.js:12)的getUserInfo(app.js:7)处不是函数.js:43)在Q.instance(angular.min.js:93)在p(angular.min.js:68)在g(angular

  • 问题内容: 我注意到在这里问了几次同样的问题,我尝试过解决这个问题,但是没有帮助。 我正在学习带蛋头视频的本教程。 但是,当我进入“控制器和控制器之间共享数据”部分时,我无法正常工作。 当我使用Chrome运行它时,在控制台中出现此错误: “参数“ FirstCtrl”不是函数,未定义”。 我真的不知道怎么了 代码与教程中的相同。 的HTML main.js 问题答案: 您的html中有2个未命名

  • 问题内容: 我正在尝试制定一条会影响元素宽度/高度的指令。通过示例,我已经看到可以通过引用适当的函数来获取/设置宽度/高度。例如,在指令的链接功能中,我尝试执行以下操作: 但是,在我的代码中,我得到“错误:element.height不是函数”。 我是否缺少对angular.js模块/库的引用,或者文档不是最新的? 问题答案: 如果您不包括jQuery angular替代品,则使用它自己的较小的库

  • 我得到了一个错误:这个$情态动词模态不是一个函数 我通过gulp文件从wwwroot文件夹中的Node_模块获得了ng2-bs3-modal。 我的文件夹结构是: 如果我将ng2-bs3-modal移动到脚本(typescript)文件夹,它将提供jasmin区域。js错误。在上面的结构中,我得到了“this.$modal.modal不是函数”错误,因为ng2-bs3-modal中的所有类型脚本都

  • 我正在一个WordPress网站上工作——它有大量的自定义代码和插件以及各种JQuery、引导和框架加载。 在最后一个加载页脚的最底部-I处: 我得到了错误: 显然,JQuery已经加载。我也尝试过在那里放置其他JQuery——除了加载的JQuery之外——我得到了相同的错误。 为什么我会得到$nota函数错误?