ng-show doesn't work when the boolean flag is reset in controller

I have an input form where I am submitting details using $http in controller to server. On successful return, I want to give user alert that data is saved. But it is just not working and I am clueless after trying hard for many hours.

Here is the HTML code :

UI Code:

<div class="alert alert-success span-5 offset3" ng-show="message">
    <button type="button" class="close" data-dismiss="alert">&times;</button>
    <strong>Success!</strong> The review has been successfully created.
</div>

And here is the controller logic, where I am flipping the flag.

$http.post('reviews/create',jsonData)
.success(function (data) {
    $scope.message=true
})

The response comes in the success block, which I have tested but then when I change flag 'message' status, the alert is not shown on UI screen. ng-show is not picking changes from $scope.message done in controller. Please suggest a solution. I tried making message as ng-model too using hidden field so that it's there in scope. My view is visible in controller as i pulled out data and submitted successfully to the server.