I recently posted a detailed description of the issue I am facing here at SO. As I couldn't send an actual $http request, I used a timeout to simulate asynchronous behaviour. Data binding from my model to view is working correctly.
Now, when I use $http instead of $timeout (tested locally), I could see the asynchronous request was successful and data is filled with json response in my service. But, my view is not updating.