ディレクティブを介して動的コントローラー (ディレクティブの観点から実行時に認識される) にテンプレートを渡そうとしています。
このようなもの:
<my-dir ctrl="PersonCtrl">
<h1>{{person.name}} - {{person.age}}</h1>
</my-dir>
var data = {
name: "Alex",
age: "24"
};
function PersonCtrl($scope){
$scope.person = data;
}
myApp.directive('myDir', function($controller){
return {
restrict: "EA",
scope: {
ctrl: "@"
},
transclude: true,
controller: function($scope, $element, $attrs) {
},
template: "<div>{{ctrl}}</div><div ng-transclude></div>",
link: function($scope, $element, $attrs) {
$controller($attrs.foo, {$scope: {}});
}
};
});
コントローラーが見つかり、インスタンス化されますが、どういうわけか、トランスクルードされたテンプレートのコントローラーへのバインディングが機能しません。いくつかの注文要件を見逃していますか、またはこのコントローラーのスコープをトランスクルードされたテンプレートにバインドする方法はありますか?