了解控制器和模块angularJs [重复]

Posted

技术标签:

【中文标题】了解控制器和模块angularJs [重复]【英文标题】:understanding controllers and modules angularJs [duplicate] 【发布时间】:2015-04-16 14:19:40 【问题描述】:

我在 app.js 中有这段代码,并且工作正常。我想将每个控制器放在不同的文件中,但如果将控制器放在其他文件中。我收到了消息:Argument 'visorController' is not a function, got undefined

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】:

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

由于都属于同一个模块,所以必须使用getter来获取上一个模块。

angular.module('appVisorMapa')

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

【讨论】:

以上是关于了解控制器和模块angularJs [重复]的主要内容,如果未能解决你的问题,请参考以下文章

搭建带路由的AngularJs框架

声明了一个模块和一个控制器AngularJS的处理过程

另一个控制器中的AngularJS调用方法[重复]

AngularJS的继承控制器[重复]

AngularJS:为啥人们更喜欢工厂在控制器之间共享数据[重复]

AngularJS之基础-3 控制器(基本语法)模块(使用模块注册控制器)