Вот мой сценарий:
angular.module('MyApp',[])
.directive('mySalutation',function(){
return {
restrict:'E',
scope:true,
replace:true,
transclude:true,
template:'<div>Hello<div ng-transclude></div></div>',
link:function($scope,$element,$attrs){
}
};
})
.controller('SalutationController',['$scope',function($scope){
$scope.target = "StackOverflow";
}])
и html:
<body ng-app="MyApp">
<my-salutation ng-controller="SalutationController">
<strong>{{target}}</strong>
</my-salutation>
</body>
Проблема в том, что когда SalutationController
применяется к директиве my-salutation
, $scope.target
не отображается для включенного элемента. Но если я помещаю ng-controller
в элемент <body>
или <strong>
, это работает. Как говорится в docs, ng-controller
создает новую область.
Кто может объяснить, как в данном случае мешают друг другу сфера действия и сфера действия директивы?
Как я могу поместить контроллер в директиву? Любые подсказки будут оценены.
controller
в объекте в дополнение к параметруlink
. - person jedd.ahyoung   schedule 27.11.2014