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

最佳答案

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

'MapCtrl;'如示例所示,应为“ MapCtrl”

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


附言之后,您应该将$rootScope注入MapCtrl内,因为否则会得到ReferenceError: $rootScope is not defined

关于javascript - AngularJS错误:“参数'MapCtrl'不是函数,未定义”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37868638/

10-11 01:37