use it on button with the form name it will keep the button disabled until the form data will validated.
ng-disabled="frmLogin.$invalid"
here is the full code for normal login form for your help
<form novalidate name="frmLogin" id="frmLogin" ng-submit="vm.doLogin()">
<div class="form-group">
<label>Email</label>
<input class="form-control" type="email" name="txtusername" id="txtusername" ng-model="vm.newLogin.username" required/>
<span class="text-danger" ng-show="frmLogin.txtusername.$error.required">Email is required.</span>
</div>
<div class="form-group">
<label>Password</label>
<input class="form-control" type="password" name="txtpassword" id="txtpassword" ng-model="vm.newLogin.password" required/>
<span class="text-danger" ng-show="frmLogin.txtpassword.$error.required">Password is required.</span>
</div>
<div class="form-group">
<button type="submit" class="btn btn-default" ng-disabled="frmLogin.$invalid">Login</button>
</div>
<div>
Don't have a Account? <a href="#/Register"><strong>Register Now</strong></a>
</div>
</form>