理解控制器和模块angularJs

时间:2015-04-16 14:19:40

标签: angularjs angular-ui-router

我在app.js中有这个代码,并且工作正常。我想将每个控制器放在一个不同的文件中,但是如果将控制器放在其他文件中。我收到了消息:参数'visorController'不是函数,未定义

angular.module('appVisorMapa', [
    'ngCookies',    // Cookies
    'ui.bootstrap', // AngularUI Botstrap
    'ui.router',    // Routing
    'ngRoute'       // Routing
])

.config(function($stateProvider, $urlRouterProvider) {
    $urlRouterProvider.otherwise("/login");
    $stateProvider
    .state("/login", {
        url: "/login",
        templateUrl: "views/login.html",
        controller: "loginCtrl"
    })
    .state("/dashboard", {
        url: "/dashboard",
        templateUrl: "views/dashboard.html",
        controller: "visorController"
    })
})

.controller('visorController', function($scope) {
    console.log("controller it's Ok");
})

这是我将控制器放在其他文件中的方式。我知道这是错的,但我不明白如何宣布它。我介意为什么我需要制作一个新模块?

angular.module('visor',[])

.controller('visorController', function($scope) {
    console.log("controller it's Ok");
});

我将新文件添加到我的index.html但不起作用。 我不明白如何在单独的文件中声明控制器。为什么不识别我的控制器或者正确的方法是什么。 我对angujarJs如何组织模块和控制器感到困惑。
提前致谢。

1 个答案:

答案 0 :(得分:3)

在这两个文件中,您使用了两个不同的模块名称angular.module('visor',[])angular.module('appVisorMapa', [])

由于两者都属于同一个模块,因此必须使用getter来获取前一个模块。

angular.module('appVisorMapa')

.controller('visorController', function($scope) {
    console.log("controller it's Ok");
});