角控制器错误:'控制器不是函数,未定义'

时间:2015-06-22 18:38:39

标签: javascript angularjs angularjs-controller

我在角度应用程序中遇到以下错误:Error: [ng:areq] Argument 'HomeController' is not a function, got undefined。我的JS和HTML如下。这实际上是离子/ cordova项目的一部分,但here is a simplified jsfiddle我遇到了同样的问题。

我的JS:

var app = angular.module('TourneyTime', ['ionic']);

app.controller = ('HomeController', function($scope) {
     $scope.players = "testing";
});

这是我的HTML:

<html ng-app="TourneyTime">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
    <link rel="stylesheet" type="text/css" href="css/index.css" />
    <title>Hello World!</title>

    <link href="bower_components/ionic/lib/css/ionic.css" rel="stylesheet">
    <link href="css/app.css" rel="stylesheet">
    <script src="bower_components/ionic/lib/js/ionic.bundle.js"></script>
    <script src="js/app.js"></script>

</head>
<body ng-controller="HomeController">
    <div class="app">
        <h1>Apache Cordova</h1>
        <h1>{{players}}</h1>

    </div>
    <script type="text/javascript" src="cordova.js"></script>
    <script src="bower_components/jquery/dist/jquery-2.1.4.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
    <script type="text/javascript">
        app.initialize();
    </script>
</body>

导致此错误的原因是什么?我计划使用$stateProvider$urlRouterProvider,但首先使用内联ng-controller属性尝试了这个简单的示例,并遇到了此错误。我想我正在使用正确的语法,但如果我错了,请纠正我。

非常感谢你的时间。如果您需要任何其他信息或我不清楚,请告诉我。

3 个答案:

答案 0 :(得分:3)

controller()本身就是一个被调用的函数,而不是你正在分配的属性。

请改为尝试:

var app = angular.module('TourneyTime', ['ionic']);

app.controller('HomeController', function($scope) {
    $scope.players = "testing";
});

答案 1 :(得分:1)

将您的代码更新为

app.controller('HomeController', function($scope) {
     $scope.players = "testing";
});

答案 2 :(得分:1)

正确的代码应该是:

var app = angular.module('TourneyTime', ['ionic']);

app.controller('HomeController', function($scope){
  //code
});

Working Fiddle