我们可以在app.controller级别而不是app.module级别定义角度依赖项吗?

时间:2015-03-05 15:02:59

标签: angularjs angular-ui

我正在关注ui.grid这个例子 网站:http://ui-grid.info/docs/#/tutorial/203_pinning

var app = angular.module('app', ['ngTouch', 'ui.grid', 'ui.grid.pinning']);


app.controller('MainCtrl', ['$scope', '$http', '$log', function ($scope, $http, $log) {
  $scope.gridOptions = {};

我正在使用app.js文件在所有控制器等中定义我的公共依赖项(整个应用程序)

var app = angular.module("sampleApp", ["ngResource", "ui.router", "ngTouch", "ui.grid", "'ui.grid.pinning'"]);

正如您所见,“ui.grid”和“ui.grid.pinning”是在应用程序或模块级别定义的。我的所有控制器/服务都可以使用它。

问题: 有没有办法在控制器级别定义这两个依赖项?如下所示,因为我不会在其他控制器/页面中使用它.... 现在我在编辑器中使用下面的代码来强调下划线,我认为这是因为点(。)。它说{预期....

 app.controller("empController", ['$scope',  
 'ui.grid', 'ui.grid.pinning',
             function ($scope, ui.grid, ui.grid.pinning) {

1 个答案:

答案 0 :(得分:0)

您可以在控制器中使用显式$injector

app.controller("empController", function empController($scope, ui.grid, ui.grid.pinning){
    empController.inject = ['$scope','ui.grid','ui.grid.pinning'];
}