update angular's ng-model on different and custom events