【问题标题】:I am getting Error: [ng:areq] Argument 'employeeObj' is not a function, got undefined, and i couldnt figure out what i missed我收到错误:[ng:areq] 参数“employeeObj”不是函数,未定义,我无法弄清楚我错过了什么
【发布时间】:2016-08-26 19:22:16
【问题描述】:

我收到错误:[ng:areq] 参数“employeeObj”不是函数,未定义,我无法弄清楚我错过了什么。有谁能够帮助我?

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<script src="Scripts/angular.js"></script>
<script>
"use strict"

    function Employee($scope, $rootScope) {
        debugger;
        $rootScope.counter = (($rootScope.counter||0)+1);
        $scope.FirstName = "demo";
        $scope.LastName = "demo";
        $scope.Validate = function () {
            if ($scope.FirstName == 0 || $scope.LastName == 0) {
                alert("No!")
            } else {
                alert("Yes!")
            }
        }
    }
    var empApp = angular.module("employeeApp", []);
    empApp.controller = ("employeeObj", Employee);
</script>
<body>
    <div ng-app="employeeApp">
        <div id="empScreen" ng-controller="employeeObj">
            First Name: <input ng-model="FirstName" id="FirstName" type="text" value=" " /><br />
            Last Name: <input ng-model="LastName" id="LastName" type="text" value=" " /><br />
            {{FirstName}}<br />
            {{LastName}}<br />
            {{counter}}<br />
            <input type="button" value="Validate" ng-click="Validate()" />
        </div>
    </div>
</body>
</html>

【问题讨论】:

  • angular的版本是多少?

标签: angularjs


【解决方案1】:

如果你使用的是 1.3 以上的 angular 版本,你需要像这样定义控制器,

  var app = angular.module("employeeApp" ,[]);
   app.controller("Employee" , function($scope,$rootScope)
   {
     $rootScope.counter = (($rootScope.counter||0)+1);
        $scope.FirstName = "demo";
        $scope.LastName = "demo";
        $scope.Validate = function () {
            if ($scope.FirstName == 0 || $scope.LastName == 0) {
                alert("No!")
            } else {
                alert("Yes!")
            }
        }
   }); 

DEMO APP

【讨论】:

  • @Dalorzo 如果 OP 只是按照您提到的那样更改代码,我猜该应用程序仍将返回相同的错误!你需要说明原因。
  • @Dalorzo 可能是,现在你已经修改了,你的答案所附的链接也不起作用,最初你刚刚提到要更改提到的行,这显然是行不通的。如果您之前进行了更改,我不会发布此答案
【解决方案2】:

尝试在角度部分的控制器实现中进行此更改:

var empApp = angular.module("employeeApp", []);
empApp.controller('employeeObj', Employee); // <-- change here

之前

empApp.controller = ('employeeObj', Employee); <-- remove the equal sign

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 2016-11-04
    • 1970-01-01
    相关资源
    最近更新 更多