AngularJS : How to change scope value from isolated scope within directive

Problem

How can I change the scope value from a directive? I've tried in this way:

in the template:

<h1>{{abcd}}</h1>
<example-directive abcd="abcd"></example-directive>

in the directive

..
scope: {
   abcd: '='
},
link: function($scope){
   $scope.abcd = "change it pleeease";
}
....

but as a result I got back nothing. So the 'h1' tag is empty.... Do anybody know why?

update1 - my complete code

Directive:

(function(){
'use strict';

var standingsDirective = function(api, $http){
    return {
        restrict: 'E',
        scope : {
            sid: '=',
            loadingstatus: '='
        },
        templateUrl: "teams/views/standings.html",
        link: function(scope){
            scope.loadingstatus = "loading";

            $http.get(api+'/getsomething'+scope.id).success(function(result){
                scope.data =  result;

                if(scope.data && scope.data.length > 0){
                    scope.loadingstatus = "loaded";
                }else{
                    scope.loadingstatus = "notloaded";
                }
            }).error(function(){
                scope.loadingstatus = "notloaded";
            });
        }
    };
};

var teamsModule = angular.module('app.teams');
teamsModule.directive('standings', ['api', '$http', standingsDirective]);

}());

a template file:

...
<a ng-show="loadingstatus == 'loaded'" ng-click="subview='standing'" class="activeLink">standings - {{loadingstatus}}</a>
...
<standings sid="sid" loadingstatus="loadingstatus" ng-show="subview=='standing'"></standings>
...
Problem courtesy of: Iamisti

Solution

Answering my question:

First of all, thanks so much "Fedaykin" to help me out with his comments. He was the one who pointed that it should work so the problem should be in another part in my code.

Figured-out that an ng-if attribute blocked the execution of my directive. Here is how html code looked like:

<a ng-show="loadingstatus == 'loaded'" ng-click="subview='standing'" class="activeLink">standings - {{loadingstatus}}</a>
<div ng-if="subview=='standing'">
    ...
    <standings sid="sid" loadingstatus="loadingstatus" ng-show=" subview=='standing'">    </standings>
    ....
</div>

So that caused this strange behaviour. I hope this post will help the other guys figuring out the problem if they have a similar one.

Solution courtesy of: Iamisti

Discussion

Well, it should work, I don't know what can be wrong, maybe if you share more of your code we can pinpoint the problem.

Here is a working example, very simple: http://plnkr.co/edit/eXhog9wsslyuHEZO2dOY

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope) {

});

app.directive('exampleDirective',[function(){
  return{
    restrict: 'E',
    scope: {
      name: '='
    },
    link: function($scope){
      $scope.name = "change it pleeease";
    }
  }
}]);

And here is a more detailed example about sharing data between controllers and directives:

http://plnkr.co/edit/Q1VdKJP2tpvqqJL1LF6m?p=preview

Discussion courtesy of: Fedaykin

This recipe can be found in it's original form on Stack Over Flow.