javascript – AngularJS / Jade错误:参数’MyController’不是函数,未定义(MEAN)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – AngularJS / Jade错误:参数’MyController’不是函数,未定义(MEAN),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2811字,纯文字阅读大概需要5分钟。
内容图文
![javascript – AngularJS / Jade错误:参数’MyController’不是函数,未定义(MEAN)](/upload/InfoBanner/zyjiaocheng/700/68eb6fe2de714dcab49b1794c9a8ed75.jpg)
我知道已经多次询问过这个问题的变体,但是我已经为其他OP尝试了几种建议的解决方案,但未能解决这个问题,并希望得到一些澄清.
我正在使用基本的平均待办事项列表应用程序(http://www.mean.io/).在实现一个简单的控制器后,我遇到了“错误:参数’nameOfMyController’不是函数,未定义.”
这是我在的地方:
app.js(样板)
window.app = angular.module('mean', ['ngCookies', 'ngResource', 'ui.bootstrap', 'ui.route', 'mean.system', 'mean.articles' ]);
angular.module('mean.system', []);
angular.module('mean.articles', []);
我已经尝试修改这里引用的内容,例如,将mean.controller添加到数组中,但这显然不是正确的方法,因为它告诉我模块不存在.
这是我的taskController.js(我遵循的一个意思是教程使taskController成为一个独立的函数,但是我将它声明为一个构造函数,就像angular的docs所说的那样)
var mean = angular.module('mean',[]);
mean.controller('taskController', function taskController($scope){
$scope.todos = [];
$scope.doneFilter = { done : true };
$scope.notDoneFilter = { done : false };
$scope.setTodos = function(todos){
$scope.todos = todos;
};
});
我还尝试了angular.module(‘mean.system’).controller(‘taskController’,function taskController($scope){…},结果相同.
现在可以查看视图:在default.jade中包含ng-app
!!! 5
html(ng-app='mean', lang='en', xmlns='http://www.w3.org/1999/xhtml', xmlns:fb='https://www.facebook.com/2008/fbml', itemscope='itemscope', itemtype='http://schema.org/Product')
include ../includes/head
body
...
include ../includes/foot
然后在index.jade我有:
extends layouts/default
block head
script(type='text/javascript', src='/js/controllers/taskController.js')
block content
section(data-ng-view)
div.container(ng-controller="taskController", ng-init="setTodos( #{JSON.stringify(todos)} )")
...
div.row(ng-repeat="todo in todos | filter:notDoneFilter")
label.checkbox
input(type="checkbox", ng-model="todo.done")
| {{ todo.description }}
span.datestring
i {{ todo.due | date: 'MMM d, yyyy' }}
...
div.row(ng-repeat="todo in todos | filter:doneFilter")
label.checkbox
input(type="checkbox", checked="true")
del {{ todo.description }}
span.datestring
i {{ todo.due | date: 'MMM d, yyyy' }}
foot.jade插入:
//AngularJS
script(type='text/javascript', src='/lib/angular/angular.js')
script(type='text/javascript', src='/lib/angular-cookies/angular-cookies.js')
script(type='text/javascript', src='/lib/angular-resource/angular-resource.js')
我不认为我缺少任何角度指令,控制器本身应该工作,所以我假设这是一个基本的应用程序架构问题,我不明白事情是如何组合在一起的.任何帮助,将不胜感激.
解决方法:
当angularjs无法在任何模块中找到控制器时,此错误主要发生.当您意外重新定义模块时,可能会发生这种情况.
在你的情况下,我看到了
window.app = angular.module(‘mean’,[‘ngCookies’,’ngResource’,’ui.bootstrap’,’ui.route’,’mean.system’,’mean.articles’]);
接着
var mean = angular.module(‘mean’,[]);
此语法重新定义了该模块.
使用angular.module(‘mean’)获取现有模块而不使用第二个参数.
内容总结
以上是互联网集市为您收集整理的javascript – AngularJS / Jade错误:参数’MyController’不是函数,未定义(MEAN)全部内容,希望文章能够帮你解决javascript – AngularJS / Jade错误:参数’MyController’不是函数,未定义(MEAN)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。