2014-01-13 38 views
5

由于文件的大小和复杂性,我已经开始将应用程序分解成单独的文件,完全基于angular-seed项目完成它的方式。如何在构建AngularJS控制器后创建实例?

在这个重构过程中,我遇到了原始控制器构造方式的问题。其中的一些,将被注入到模态对话框中的将被创建为实例。

var firstInstanceCtrl = ['$scope', function($scope) { code... } ]; 

var secondInstanceCtrl = ['$scope', function($scope) { code... } ]; 

,在我的“主”控制器使用这种方式

$scope.buttonClick = function (row) { 

    var viewModel = {}; 

    var modalInstance = $modal.open({ 
     backdrop: 'static', 
     windowClass: 'modal-wide', 
     templateUrl: 'modalFirst.html', 
     controller: firstInstanceCtrl, 
     resolve: { 
      viewModel: function() { 
       return viewModel; 
      } 
     } 
    }); 

    modalInstance.result.then(function() {}, function() { }); 
}; 

但是,控制器现在注册的方式,我没有看到一个路怎么走的情况下,例如

angular.module('myApp.controllers', []). 
controller('firstInstanceCtrl', [function() { 

}]) 
.controller('secondInstanceCtrl', [function() { 

}]); 

所以我的问题是,“我如何获得我的主控制器内的子控制器的实例?”

+1

尝试在'$ modal.open'中使用字符串版本'controller:'firstInstanceCtrl''。 –

+0

http://jsfiddle.net/provegard/DUrgx/8/看到这个例如 – SoluableNonagon

+3

此外,$控制器服务可以帮助你http://docs.angularjs.org/api/ng.$controller – SoluableNonagon

回答

6

您可以使用用于控制器的注册名称:

controller: 'firstInstanceCtrl', 

$modal.open使用$controller内部。

+0

一石二鸟..谢谢。 –

相关问题