I know we can use ng-change to solve this but I would like to understand why $watch doesn\'twork on select. Maybe I\'m doingsomething wrong but it seems I am not the only on
I accept answer from @pankajparkar but I'd like to show my final code as in fact with the proper binding proposed by @pankajparkar I don't need a $watch anymore.
HTML
URL: {{serverSelection.server.url}}
JS
.controller('SettingsCtrl', function ($scope, $log, serverSelection) {
//List of servers to connect to
$scope.serverSelection= serverSelection;
})
.service("serverSelection", function() {
var self = this;
self.servers = [
{ label: 'Production', value: 1, url: 'url0' },
{ label: 'Training', value: 2, url: 'url1' },
{ label: 'Local', value: 3, url: 'url2' }
];
self.server = self.servers[1];
})