ng-include
スコープ内のいくつかの変数に基づいて、動的なテンプレートとコントローラーを持つディレクティブを使用しています。現在、私はこのような地図を持っています。
$scope.map = {
'key1': {
controller: Ctrl1,
templateUrl: 'tmpl1.html'
},
'key12': {
controller: Ctrl2,
templateUrl: 'tmpl1.html'
}
}
...
<div ng-include src="map[key].templateUrl" ng-controller="map[key].controller"></div>
ただし、このマップを破棄し、代わりに文字列を介して templateUrl とコントローラーを生成したいと思います。以下はコントローラーオブジェクトを返しますが、関数を返す必要があります。
var ctrlObj = angular.module('moduleName').controller('ControllerName')
編集1
明確にするために:
ただし、このマップを破棄し、代わりに文字列を介して templateUrl とコントローラーを生成したいと思います
基本的に、構成よりも規則になるように、ページに「サブコントローラー」を設定します。すべてのサブコントローラーが共有する情報を持つマスターコントローラー: FooCtrl が「マスター」コントローラーになり、FooBarCtrl、FooBarSubCtrl がサブコントローラーになります。私の目標は、「Bar」を「FooBarCtrl」に解決し、そこから適切なコントローラー関数を取得する関数を作成することです。