Angularjs - 如何仅在1个控制器中使用模块

时间:2013-11-16 17:49:58

标签: javascript angularjs

我正在学习Angularjs,我有2个模板页面 - 一个login.html页面和一个index.html页面。

我正在使用此指令 - https://github.com/pablojim/highcharts-ng在我的index.html页面上创建图表。

我遇到的问题是,我不想在我的login.html页面中包含<script src="js/highcharts-ng.js"></script>,因为它没有在该页面上使用,但是使用下面的代码,我得到了如果我没有包含此脚本,则会出错。

如何将'highcharts-ng移动到只有1个控制器而不是整个应用程序?

app.js

var myezteam = angular.module('myezteam', ['highcharts-ng']); //<-- Don't want highcharts-ng here

dashboard.js

myezteam.controller('DashboardController', ['$scope', '$http', 'myezteamBase', function($scope, $http, myezteamBase) {
...

我试过了,但它给了我这个错误:Uncaught SyntaxError: Unexpected token -

myezteam.controller('DashboardController', ['$scope', '$http', 'myezteamBase', 'highcharts-ng', function($scope, $http, myezteamBase, highcharts-ng) {
    ...

3 个答案:

答案 0 :(得分:1)

最简单的方法是在每个页面上使用不同的模块声明,并根据需要使用不同的依赖关系

答案 1 :(得分:0)

请记住,您需要更改“加载”的思维方式,因为角度适用于SPA(单页应用程序),您通常会立即加载所有应用程序无论您是在登录视图还是任何其他观点。

我建议你检查一下这种结构https://github.com/angular-app/angular-app,它们在应用程序的不同部分有不同的“模块”及其自己的依赖关系,无论如何整个应用程序一次加载。

如果您希望有一个尚未加载所有应用程序的登录页面,也许您可​​以将该页面设置为普通的html / jquery,并在登录后重定向到angular app。

答案 2 :(得分:0)

尝试使用此方法进行解决方案Uncaught SyntaxError

myezteam.controller('DashboardController',
    ['$scope', '$http', 'myezteamBase', 'highcharts-ng',
        function($scope, $http, myezteamBase, highcharts)

使用数组方法

定义依赖项时,可以更改函数中参数的名称