У меня проблема с моими директивами. Если я вызываю строку $scope.popup.show = false
из всплывающего контроллера, она работает нормально. Если я вызываю $scope.hideModal()
от ребенка contentDirective
, то код вызывается (отмечено в debug), но значение $scope.popup.show
не изменяется (при отладке значение равно «false»), и всплывающее окно does'nt hide: /.AngularJS: Скрыть всплывающее окно от дочернего контроллера (всплывающее содержимое)
У вас есть идея? :)
index.html:
<popup title="sometitle">
<contentDirective> </contentDirective>
</popup>
popup.html:
<div ng-show="popup.show">
<div ng-transclude></div>
</div>
popup.js
.directive(....
return {....
scope: {}
}
})
.controller(....
$scope.hideModal = function()
{
$scope.popup.show = false;
}
}]);
contentDirective.htlm (НЕ изолированный сфера)
<div>
<button onclick="changeSomethingAndHide()"/>
</div>
contentDirective.js
.controller(....
$scope.changeSomethingAndHide = function()
{
//calls the parent function
$scope.hideModal();
}
}]);
Может быть, я что-то пропустил ..
Спасибо!
Hi @rchawdry, спасибо Я собираюсь врываться в эти ссылки :). – ogdabou
Я использовал решение во второй ссылке: ввел родительский всплывающий контроллер в директиве. Но на самом деле это то, что я делал с самого начала, я подумал, что было бы просто назвать функцию области видимости. «Что несколько сбивает с толку, но есть веские причины для этого», я думаю, что один из них должен знать, где определена функция, nop? спасибо в любом случае! – ogdabou