Removed the restrict: 'C' because it's uncommon in angular and causes the directive to attach to additional elements with .selectpicker created by the selectpicker plugin itself.
stays in sync with the original ngModel due to the $watch and $timeout
$timeout is there because without, it would sometimes conflict with a currently running $digest cycle, and wrapping the function in a $timeout is the accepted method for running a function on the next open $digest.
Also incorporates the if ngModel is undefined conditional that others have implemented and asked for.
restrict: 'C'
because it's uncommon in angular and causes the directive to attach to additional elements with.selectpicker
created by the selectpicker plugin itself.$watch
and$timeout
$timeout
is there because without, it would sometimes conflict with a currently running$digest
cycle, and wrapping the function in a$timeout
is the accepted method for running a function on the next open$digest
.if ngModel is undefined conditional
that others have implemented and asked for.