Kev*_*ith 119 playframework angularjs
使用AngularJS和Scala Play,我收到了这个错误.
错误:参数'MainCtrl'不是函数,未定义
我正在尝试创建一个包含一周中几天的表格.
请看一下我的代码.我检查了控制器的名称,但这似乎是正确的.注意:此SO 答案中使用的代码
index.scala.html
@(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>
}
Run Code Online (Sandbox Code Playgroud)
MainCtrl.js
(function() {
angular.module('[myApp]', []).controller('MainCtrl', function($scope) {
$scope.data = {
Colors: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
}
});
}());
Run Code Online (Sandbox Code Playgroud)
Cha*_*ani 105
[]
从模块的名称([myApp])中删除
angular.module('myApp', [])
Run Code Online (Sandbox Code Playgroud)
并添加ng-app="myApp"
到HTML,它应该工作.
ple*_*ock 77
第一.
检查controller
路由定义中是否正确,与您定义的控制器名称相同
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';
}]);
Run Code Online (Sandbox Code Playgroud)
此示例中的不同控制器名称将导致错误,但此示例是正确的
SECOND检查您是否导入了javascript文件:
<script src="modules/community/controllers/CommunityMembersCtrl.js"></script>
小智 26
我有相同的错误消息(在我的情况下:"参数'languageSelectorCtrl'不是一个函数,未定义").
在与Angular种子的代码进行了一些繁琐的比较后,我发现我之前删除了对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可以再次实现控制器.
Gau*_*rav 16
有时这个错误是由html中指定的两个 ng-app
指令引起的.在我的情况下误我指定ng-app
我的html
标签,并ng-app="myApp"
在body
这样的标签:
<html ng-app>
<body ng-app="myApp"></body>
</html>
Run Code Online (Sandbox Code Playgroud)
这真的花了我4个小时(包括对SO的无休止搜索)但最终我发现了它:错误(无意中)我在某个地方添加了一个空间.
你能发现它吗?
angular.module('bwshopper.signup').controller('SignupCtrl ', SignupCtrl);
所以...... 4个小时后我发现它应该是:
angular.module('bwshopper.signup').controller('SignupCtrl', SignupCtrl);
几乎不可能只用肉眼看到.
这强调了修订控制(git或其他)和单元/回归测试的至关重要性.
归档时间: |
|
查看次数: |
205920 次 |
最近记录: |