Я отношусь к новой версии AngularJS и пытаюсь создать директиву для добавления некоторых кнопок. Я пытаюсь изменить область управления внутри директивы, но я не могу заставить ее работать. Вот пример из моего приложенияДиректива с двусторонним связыванием
app.controller('invoiceManagementController', ['$scope', function ($scope) {
$scope.gridViewOptions = {
isFilterShown: false,
isCompact: false
};
}]);
app.directive('buttons', function() {
return {
restrict: 'A',
template: '<button type="button" data-button="search" title="Filter"><i class="glyphicon glyphicon-search"></i></button>',
scope: {
gridViewOptions: '='
},
transclude: true,
link: function (scope, element, attr, ctrl, transclude) {
element.find("button[data-button='search']").bind('click', function (evt) {
// Set the property to the opposite value
scope.gridViewOptions.isFilterShown = !scope.gridViewOptions.isFilterShown
transclude(scope.$parent, function (clone, scope) {
element.append(clone);
});
});
}
};
});
Мой HTML как следующий
{{ gridViewOptions.isFilterShown }}
<div data-buttons="buttons" data-grid-view-options="gridViewOptions"></div>
Область внутри директивы делает изменения, но, как изолированные, я стараюсь платить со свойством области действия и transclude, но я» m, вероятно, что-то не хватает, хотелось бы получить некоторый свет здесь
На html У меня есть '{{gridViewOptions.isFilterShown}}' Я хочу, чтобы привязка двухсторонней передачи данных была возможна? Я вижу с вами решение, оно меняет родительскую область, которая хороша – vcliment89