代码之家  ›  专栏  ›  技术社区  ›  Cashew

将控制器添加到UI路由器状态时,AngularJS中出现模块错误

  •  3
  • Cashew  · 技术社区  · 7 年前

    应用程序。js公司

    var myApp=angular.module('sampleApp', ['ui.router','MainCtrl', 'NerdCtrl', 
    'NerdService', 'GeekCtrl', 'GeekService','ngMaterial']);
    myApp.config(function($stateProvider, $urlRouterProvider){
    $stateProvider
        .state('login', {
            url: '/login',
            templateUrl: 'views/login.html'
    
        })
        .state('nerd', {
            url: '/nerd',
            templateUrl: 'views/nerd.html',
            //controller: NerdController
        })
        .state('geek', {
            url: '/geek',
            templateUrl: 'views/geek.html'
        });
    
    $urlRouterProvider.otherwise('/login');
    });
    

    我从AngularJs样板开始,并尝试使用UI路由器,我已经在这方面停留了一段时间。当我注释掉上面显示的代码行时,它工作正常,不会出现错误。然而,当我添加控制器时 this module error 在控制台中显示“ReferenceError:NerdController未定义”。我已经定义了控制器并添加了控制器依赖项,但我不确定我需要做什么。这似乎是我正在监督的一个简单错误。谢谢你的帮助!

    以下是控制器文件:

    angular.module('NerdCtrl', []).controller('NerdController', function($scope) 
    
    {
    $scope.tagline = 'Nothing beats a pocket protector!';
    });
    

    我的目录结构可能有问题吗?

    1 回复  |  直到 7 年前
        1
  •  4
  •   Ved    7 年前

    更改为: controller: "NerdController"

    var myApp=angular.module('sampleApp', ['ui.router','MainCtrl', 'NerdCtrl', 
        'NerdService', 'GeekCtrl', 'GeekService','ngMaterial']);
        myApp.config(function($stateProvider, $urlRouterProvider){
        $stateProvider
            .state('login', {
                url: '/login',
                templateUrl: 'views/login.html'
    
            })
            .state('nerd', {
                url: '/nerd',
                templateUrl: 'views/nerd.html',
                controller: "NerdController"
            })
            .state('geek', {
                url: '/geek',
                templateUrl: 'views/geek.html'
            });
    
        $urlRouterProvider.otherwise('/login');
        });