Let us consider the below block:
<div ng-controller="emp"> //emp is the controller name
When above block is compiled, it tries to create boundary/context which is stored in some browser memory that contains some data in block which is not shown to user.
The boundary/context is then attached to ng-controller="emp" block. So the boundary has the direct accessed by the block.
This boundary/context is called as scope. So when you mention emp you are saying to create new controller instance along with scope being merged. Now,Scope acts as a mediator between controller instance and view(block).
Now,finally if view wants to send data to controller then it send through scope and vice-versa.
Explanation of above is attached for your reference: