I think you are right, `scope.isOpen = !!value` has to be removed. What about this:
```javascript
scope.$watch('isOpen', function(value) {
    if ( !!value ) {
         accordionCtrl.closeOthers(scope);
    }
});
```