You can use a second directive and require that in your first.
MyApp.directive('myDirective', function() { return { scope: { symbol: '@' }, require: 'symbol', link: angular.noop //this is needed to check for the required controller ... } } MyApp.directive('symbol', function () { return { controller: angular.noop } }
The controller is necessary for myDirective to actually require symbol. Keep in mind in cases like these, prefixing your directives with a namespace is crucial.
Here is a jsfiddle with an example of this working. In the example I've overridden the angular error service to put out an alert on all errors. You can see that the cause of the error is the <div> missing the required directive.
http://jsfiddle.net/fooby12/rqRg2/