Первая директива:
app.directive("myDirectiveOne", function($rootScope){
return {
templateUrl : "/custom-one-html.html",
restrict: "AE",
replace:true,
scope: {
somedata: "=",
flags: "=",
functionone: "&"
}
,controller: function($rootScope,$scope, $element) {
$scope.firstFunction = function(){
console.log("First function is getting called")
}
$scope.$on('firstBroadcast',function(event, data){
$rootScope.$broadcast('secondBroadcast', data)
});
}
Вторая директива:
app.directive("myDirectiveTwo", function($rootScope){
return {
templateUrl : "/custom-two-html.html",
restrict: "AE",
replace:true,
scope: {
data: "=",
functiontwo: "&"
}
,controller: function($rootScope,$scope, $element) {
$scope.secondFunction = function(){
console.log("Second function is getting called")
$rootScope.$broadcast('firstBroadcast', {})
}
$scope.$on('secondBroadcast',function(event, data){
$scope.callSomeFunctionWithData(data);
});
$scope.secondFunction();
$scope.editFunction = function(x){
console.log("This is the edit function", x);
}
Родительский контроллер:
$scope.parentFuntion = function(){
console.log("No trouble in calling this function")
}
Итак, проблема в том, что я пытаюсь вызвать функциюиз HTML-шаблона myDirectiveTwo
активный контроллер является родительским, а не изолированным.
Может быть, это как-то связано с вещаниями, которые я использую?
HTML-код:
<div ng-repeat="x in data">
<h5>{{x.name}}</h5>
<button ng-click="editFunction(x)">Edit</button>
</div>
Странно то, что я получаю значения данных и ng-repeatотлично работает на нагрузке.Но когда я нажимаю на кнопку, она ничего не делает.И если я добавлю ту же функцию в родительский контроллер, она будет вызвана .. :( Как мне снова сделать изолированный контроллер области видимости активным ..?