【问题标题】:AngularJS error: 'argument 'MapCtrl' is not a function, got undefined'AngularJS错误:'参数'MapCtrl'不是函数,未定义'
【发布时间】:2016-06-16 20:17:25
【问题描述】:

Controllers.js
angular.module('starter.controllers',[])

.controller('AppCtrl',function($scope,$rootScope) {
    $rootScope.side_menu = document.getElementsByTagName("ion-side-menu")[0];

 $rootScope.$on('$stateChangeSuccess', function (event, toState, toParams, fromParams, toParams) {
if (toState.name != 'app.map') {
    $rootScope.side_menu.style.visibility = "visible";
}
});
})
.controller('MapCtrl',function($scope) {
    $rootScope.side_menu.style.visibility = "hidden";
})

Angular 和 Ionic 的新手。已经检查了有关此错误的其他问题。谢谢。

HTML

AppJS

【问题讨论】:

  • 你是否也粘贴到你的html中
  • 当你使用ng-app="Starter"时,为什么要调用你的模块starter.controllers
  • 我可以删除它吗?
  • 我相信对于您将控制器添加到哪个模块感到困惑。在您的第二个控制器前面添加 angular.module('starter.controllers',[]) 或将其保存在 var 中并将其添加到您将用于此模块的每个后续控制器前面。
  • 我会将您的模块称为 angular.module('starter',[]) 我不知道这是否是您的问题,但 ng-app 指令需要匹配 Letter for letter 无论您如何称呼您的应用

标签: javascript angularjs ionic-framework frameworks


【解决方案1】:

从控制器 MapCtrl 的名称中删除 app.js 中的 ;

'MapCtrl;' 应该是 'MapCtrl' 就像示例中一样

    .state('app.map,{
      url:"/map",
      views: {
      'menuContent' :{
      templateUrl: "templates/map.html",
      controller: 'MapCtrl'
      }
     }
    })

附:之后你应该在 MapCtrl 中注入$rootScope,否则你会得到ReferenceError: $rootScope is not defined

【讨论】:

    猜你喜欢
    • 2013-10-24
    • 2016-11-12
    • 2015-09-02
    • 2015-10-20
    • 2014-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    相关资源
    最近更新 更多