2014-11-04 69 views
0

我使用的离子框架构建与AngularJS和科尔多瓦的混合应用。对于AngularJS和JavaScript都是全新的,这并不是一件好事。AngularJS参数“***”不是一个函数,得到了不确定

一切工作正常,直到我决定每个控制器/服务1个文件重新组织我的应用程序的结构。所以我很确定问题来自那里,我无法找到解决方法。

下面的代码:

JS/app.js

angular.module('app', ['ionic', 'app.controllers']) 

    .run(function($ionicPlatform) { 
     ... 
    }) 

    .config(function($stateProvider, $urlRouterProvider) { 

    $stateProvider 

    .state('login', { 
     url: '/login', 
     templateUrl: 'templates/login.html', 
     controller: 'LoginCtrl' 
    }) 
    ... 

JS /控制器/ LoginCtrl.js

angular.module('app.controllers', []) 
.controller('LoginCtrl', ['$scope', '$http', '$state'], function($scope, $http, $state) {}); 

的index.html

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
    <title></title> 

    <link href="lib/ionic/css/ionic.css" rel="stylesheet"> 
    <link href="css/style.css" rel="stylesheet"> 

    <script src="lib/ionic/js/ionic.bundle.js"></script> 
    <script src="cordova.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/controllers/LoginCtrl.js"></script> 
    </head> 

    <body ng-app="app"> 
    <ion-nav-view></ion-nav-view> 
    </body> 
</html> 

试过代码的许多变型以上,也没有用。

任何帮助,不胜感激...

编辑

我担心在找出问题是什么(或只是另一个症状)取得了一些进展。

在我index.html文件,如果切换控制器的声明的顺序,一个正确的app.js总是被忽略后声明。这是我的错误,当我把他们的顺序如下

Controller 'ionNavBar', required by directive 'ionNavButtons', can't be found! 


<script src="lib/ionic/js/ionic.bundle.js"></script> 
    <script src="cordova.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/controllers/RegisterCtrl.js"></script> 
    <script src="js/controllers/LoginCtrl.js"></script> 

回答

1

控制器的功能,必须依赖数组中。

.controller('LoginCtrl', ['$scope', '$http', '$state', function($scope, $http, $state) {}]); 

,我想你也有运行中的注入$ ionicPlatform()和配置功能,这样

.run(["$ionicPlatform", function($ionicPlatform) { 
     ... 
    }]) 

.config(["dep1", function(dep1) {}]); 
+0

感谢你的帮助,马修。尽管如此,仍然得到同样的错误 – Fantastic 2014-11-05 01:20:30

+1

修正了它。对于Ionic框架有一些其他问题,并使用angular.module('app')。控制器而不是angular.module('app.controllers',[]).controller。 谢谢! – Fantastic 2014-11-05 02:52:01

相关问题