Доступ к глобальной области действия вне пользовательских директив окружения angularjs
Так вот мой пример кода пользовательских директив
myApp.directive('anchorLink', function () {
return {
restrict: 'EA',
link: function (scope, elem, attr) {
elem.on('click', function () {
scope.show = true;
});
}
};
});
и вот моя HTML-разметка
<a href="javascript:;" anchor-link>click me</a>
<div ng-show='show'>show me</div>
<div ng-hide='show'>hide me</div>
как вы можете видеть, я хочу манипулировать $scope.show вне среды пользовательских директив, но это не сработало... вы можете мне помочь?
1 ответ
Вы можете сделать это:
<a href="javascript:;" ng-click="show=true">click me</a>
<div ng-show='show'>show me</div>
<div ng-hide='show'>hide me</div>
или же:
myApp.directive('anchorLink', function () {
return {
restrict: 'EA',
link: function (scope, elem, attr) {
elem.on('click', function () {
scope.$apply(function (){
scope.show = true;
});
});
}
};
});
Если единственной целью вашей директивы является привязка обработчика кликов, вам не нужна директива для этого, поскольку вы можете просто использовать ng-click.
Рабочий плнкр второго варианта: плнкр