首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >错误:参数不是函数,未定义

错误:参数不是函数,未定义
EN

Stack Overflow用户
提问于 2013-06-25 12:35:00
回答 17查看 211.2K关注 0票数 121

在Scala Play中使用AngularJS时,我得到了这个错误。

错误:参数'MainCtrl‘不是函数,未定义

我正在尝试创建一个由星期几组成的表。

请看一下我的代码。我已经检查了控制器的名称,但这似乎是正确的。注意:从这里使用的代码,所以answer

index.scala.html

代码语言:javascript
复制
@(message: String)

@main("inTime") {

<!doctype html>
<html lang="en" ng-app>
    <head>
        <link rel="stylesheet" media="screen" href="@routes.Assets.at("stylesheets/main.css")">
    </head>
<div ng-controller="MainCtrl">
    <table border="1">
    <tbody ng-repeat='(what,items) in data'>
      <tr ng-repeat='item in items'>
        <td ngm-if="$first" rowspan="{{items.length}}">{{what}}</td>
        <td>{{item}}</td>
      </tr>
    </tbody>
  </table>
</div>
</html> 
}

MainCtrl.js

代码语言:javascript
复制
(function() {
    angular.module('[myApp]', []).controller('MainCtrl', function($scope) {
        $scope.data = {
            Colors: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
        }
    });
}());
EN

回答 17

Stack Overflow用户

回答已采纳

发布于 2013-06-25 13:00:50

从模块的名称(myApp)中删除[]

代码语言:javascript
复制
angular.module('myApp', [])

并将ng-app="myApp"添加到html中,它应该可以工作。

票数 108
EN

Stack Overflow用户

发布于 2013-12-09 02:31:42

首先使用检查路由定义中的controller是否正确,是否与您正在定义的控制器名称相同

代码语言:javascript
复制
communityMod.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider.
      when('/members', {
        templateUrl: 'modules/community/views/members.html',
        controller: 'CommunityMembersCtrl'
      }).
      otherwise({
        redirectTo: '/members'
      });
  }]);

communityMod.controller('CommunityMembersCtrl', ['$scope',
    function ($scope) {
        $scope.name = 'Hello community';
    }]);

本例中不同的控制器名称会导致错误,但本例是正确的

SECOND检查您是否已导入javascript文件:

<script src="modules/community/controllers/CommunityMembersCtrl.js"></script>

票数 78
EN

Stack Overflow用户

发布于 2013-07-28 20:42:40

我也有同样的错误信息(在我的例子中:“参数'languageSelectorCtrl‘不是一个函数,未定义”)。

在与Angular seed的代码进行了一些繁琐的比较之后,我发现我之前在app.js中删除了对控制器模块的引用。(在https://github.com/angular/angular-seed/blob/master/app/js/app.js上发现它)

所以我有了这个:

angular.module('MyApp', ['MyApp.filters', 'MyApp.services', 'MyApp.directives'])

这失败了。

当我添加缺失的引用时:

angular.module('MyApp', ['MyApp.filters', 'MyApp.services', 'MyApp.controllers', 'MyApp.directives'])

错误消息消失了,Angular可以再次实例化控制器。

票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17289236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档