参数 '<controller>' 不是 Angular 路由中的函数
Argument '<controller>' is not a function in Angular routing
我收到此错误,但找不到问题,以下是我的错误
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
,它可以正常工作。我现在花了相当多的时间,对我来说似乎还可以。
您正在使用bundling & minification
,请尝试:
var app = angular.module('ft.controllers', []);
app.controller('homeCtrl', ['$scope', '$ionicModal', '$timeout', function ($scope, $ionicModal, $timeout) {
});
JS 代码的缩小将替换变量名称。 AngularJS
它基于此名称注入模块。
最后我能够解决这个问题,问题是ft.controllers
在两个控制器中使用。
angular.module('ft.controllers', [])
.controller('homeCtrl', function($scope, $ionicModal, $timeout){
});
angular.module('ft.controllers', [])
.controller('menuCtrl', function($scope, $ionicModal, $timeout){
]});
当我将名称更改为 ft.controllers.home
时,ft.controllers.menu
并将它们添加到它开始工作app.js
我怎么想它会工作,因为我相信这在ionic
sideMenu
启动的应用程序中使用
#controllers.js from ionic started sideMenu app
angular.module('starter.controllers', [])
.controller('AppCtrl', function($scope, $ionicModal, $timeout) {
})
.controller('PlaylistsCtrl', function($scope) {
})
控制器.js文件
应用程序.js文件
项目
- Angularjs:路由后如何调用控制器函数
- 通过express路由调用HTML中的Javascript函数
- angular-index.html只识别默认路由中定义的函数
- 无法使用快递和猫鼬进行路由,请继续获取"类型错误:req.params.user不是函数;
- 如何在路由更改后停止 setInterval 函数在角度指令上执行
- ES6类,传递函数作为参数来注册expressjs路由
- Express JS - 对路由和中间件使用匿名函数
- 节点.js解析路由的最小函数
- ExpressJS中同一路由函数的多个路径
- 在 Express JS 中从路由调用函数对象
- 使用语义 UI 选项卡启用的多个路由的文档就绪函数应该去哪里
- 参数 '
' 不是 Angular 路由中的函数 - NodeJs,异步函数在 api 路由返回后完成
- ASP.Net MVC Razor - Javascript 函数路由问题
- 如何在快递.js中让多条路线使用相同的路由函数
- 调用路由中的父控制器函数
- Ember&RSVP:如何解决路由中的嵌套关系's模型函数
- $routeProvider配置路由抛出'未捕获错误:[ng:areq]参数'fn'不是函数,得
- AngularJS函数在路由更改时被错误调用
- 节点路由函数不做任何事情