Мне нужно посмотреть атрибут из директивы и переключить функцию, когда значение равно true, это срабатывает при первом нажатии на нее, но мне нужно перезагрузить значение модели ATTRIBUTE/Attribute после ее оценки, и это та часть, которую я не могу понять.Как я могу переключить директиву без использования объявления области
DEMO ВЫПУСКА: https://jsfiddle.net/DG24c/200/
Желаемый результат будет иметь кнопку EXTERNAL ACCESS
в моей демке всегда вызывает предупредительный метод.
шаблона:
<div ng-controller="otherController">
<button interactive show-when="toggled">Show Directive Alert</button>
<button ng-click="toggled = true" >External access</button>
</div>
Javascript:
myApp.controller("otherController",function($scope){
$scope.toggled = false;
});
myApp.directive('interactive', function($parse) {
return {
restrict : 'A',
// scope : true || {} cannot be used
link : function(scope, element,attrs) {
element.on('click', function() {
show();
});
scope.$watch(attrs.showWhen, function(newValue,o) {
if (newValue) {
// the value is true, but now I need to reset
// the value on TOGGLED back to false here, so that the next
// time the button clicks, it will show the alert
show();
// tried attrs.$set('showWhen', false);
// tried var showAttr = $parse(attrs.showWhen)();
// showAttr = false;
}
});
function show() {
alert('showing!');
}
}
};
})
@jwpfox это действительно помогало мне разрешить его, я отредактировал свой ответ разрабатывать –