Self explanatory fiddle: http://jsfiddle.net/5FG2n/6/
I need to dynamically choose the controller to use at runtime based on its name as a string. The string will be read from a config object.
In the code below I currently have InnerCtrlAsLocalVariable
assigned to $scope.dynamicCtrl
. How instead do I assign InnerCtrlFromModule
to the property?
View:
<div ng-app='app' ng-controller='OuterCtrl'>
<div ng-controller='dynamicCtrl'>
{{message}}
</div>
</div>
JS:
var InnerCtrlAsLocalVariable = ['$scope',
function($scope) {
$scope.message = 'from controller as local variable - do not want'
}
];
angular.module('app', [])
.controller('OuterCtrl', ['$scope',
function($scope) {
// Instead of doing this...
$scope.dynamicCtrl = InnerCtrlAsLocalVariable;
// ...I want to do something like this:
// $scope.dynamicCtrl = resolveCtrl('InnerCtrlFromModule');
}
])
.controller('InnerCtrlFromModule', ['$scope',
function($scope) {
$scope.message = 'from controller defined in module - want';
}
]);