【发布时间】:2014-12-01 13:33:18
【问题描述】:
我收到了这个错误,我找不到问题,以下是我的错误
Error: [ng:areq] Argument 'homeCtrl' is not a function, got undefined
http://errors.angularjs.org/1.2.25/ng/areq?p0=homeCtrl&p1=not%20aNaNunction%2C%20got%20undefined
at VALIDITY_STATE_PROPERTY (http://localhost:8100/lib/ionic/js/ionic.bundle.js:7703:12)
at assertArg (http://localhost:8100/lib/ionic/js/ionic.bundle.js:9134:11)
at assertArgFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:9144:3)
at $get (http://localhost:8100/lib/ionic/js/ionic.bundle.js:14903:9)
at updateView (http://localhost:8100/lib/ionic/js/ionic.bundle.js:42986:30)
at IonicModule.directive.directive.compile (http://localhost:8100/lib/ionic/js/ionic.bundle.js:42942:9)
at nodeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:14336:13)
at compositeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:13730:13)
at nodeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:14330:24)
at compositeLinkFn (http://localhost:8100/lib/ionic/js/ionic.bundle.js:13730:13)
以下是我的 Angular 和 Ionic 项目:
#app.js
angular.module('ft', ['ionic', 'ft.controllers'])
.run(function($ionicPlatform) {
// run method
})
.config(function($stateProvider, $urlRouterProvider){
$stateProvider
.state('app', {
url: '/app',
abstract: true,
templateUrl: 'templates/sideMenu.html',
controller: 'menuCtrl'
})
.state('app.home', {
url: '/home',
views: {
'menuContent': {
templateUrl: 'templates/home.html',
controller: 'homeCtrl'
}
}
});
$urlRouterProvider.otherwise('/app/home');
});
#www/js/controllers/home_ctrl.js
angular.module('ft.controllers', [])
.controller('homeCtrl', function($scope, $ionicModal, $timeout){
});
#index.html file
<script src="js/app.js"></script>
<script src="js/controllers/home_ctrl.js"></script>
但是如果我从路由中删除homeCtrl,它就可以正常工作。我现在花了相当多的时间,对我来说似乎没问题。
【问题讨论】:
-
您能否毫无疑问地验证浏览器是否能够下载
home_ctrl.js文件? -
我在 plnkr 中运行它,没有错误:plnkr.co/edit/7eSdX3nE0CKHqomgMEoh?p=preview
-
OP,我认为您的 home_ctrl.js 位置错误
-
@MichaelPerrenoud,感谢您的回答。
home_ctrl.js可从浏览器访问,问题在于模块加载重复。我发布了一个详细的答案 -
@NoIdeaForName,感谢您的回答,home_ctrl.js 可以从浏览器访问,问题在于模块加载重复。我发布了一个详细的答案
标签: javascript angularjs ionic-framework ngroute