У меня есть кнопка, которая меняет «активное» состояние. Во-первых, он загружает состояние с сервераМетод управления вызовом из директивы
<button active="data.active" ng-click="changeStatus()"></button>
директива Код:
app.directive('active', function() {
return {
restrict: 'A',
templateUrl: 'whatever.html',
scope: {
active: '='
},
link: function($scope, elem, attrs) {
$scope.changeStatus = function() {
// Actually I'm doing this, it works fine
var value = !$scope.active;
$scope.$parent.MethodWhoChangesState(value, function(response) {
// I need to change the button state here
});
}
}
}
})
Это работает, но я думаю, что я не уважая «угловых-х правил» ...
Есть ли лучший способ?
Вы должны передать вашу функцию с помощью атрибута и привязать его к области с помощью '&' – jcubic
всегда хорошо, чтобы оценить если вам действительно нужна изолированная область. Если нет, ваша директива уже будет в родительском поле. – charlietfl
@charlietfl Если он не создает новую область с attr biding, тогда ему нужно будет дважды связать себя. – jcubic