title: Directive scope attributes break depending on attribute name
body: <p>I have a very strange phenomenon with a directive and an isolated scope, where the attributes in the scope work or do not work depending on the naming of the attribute. If I use</p>
  
  <pre><code>{check:'@check'}
  </code></pre>
  
  <p>it works just fine and as expected. However,if I use:</p>
  
  <pre><code>{checkN:'@checkN'}
  </code></pre>
  
  <p>the defined function never gets assigned. An example would look like:</p>
  
  <p><strong>HTML:</strong></p>
  
  <pre><code>&lt;item ng-repeat="list_item in model.list" model="list_item" checkN="checkName()" check="checkName()" position="$index"&gt;&lt;/item&gt;'
  </code></pre>
  
  <p><strong>Javascript</strong></p>
  
  <pre><code>app.directive('item', function(){
     return {
        restrict: 'E',
        replace : false,   
        scope:{
                $index: '=position',
                check: '&amp;check',
                checkN: '&amp;checkN',
                model:'='
        },          
        template: '',
        link: function(scope, element, attrs){
          console.log(scope.check())
          console.log(scope.checkN())          
        }
      }
  });
  </code></pre>
  
  <p>The console will then give me the following:</p>
  
  <pre><code>The checkName function has been called [which is the return string of the function]
  undefined
  </code></pre>
  
  <p>It is really possible that it depends on the usage of capital letters? This would be very "unexpected" behaviour.</p>
  
  <p>Thanks for your help</p>
  
  <p>schacki</p>