Доброго времени суток.
Пишу директиву, суть которой - вызов модального окна и отправка данных на сервер из формы в этом окне. Окно показываю с помощью директивы Modal из Bootstrap components для Angular (
angular-ui.github.io/bootstrap ).
'templates/modal/addCom.html'
<select class="form-control" ng-model="selected">
<option ng-repeat="type in types" value="{{type}}">{{type.comment}}</option>
</select>
app.directive('addCom',function($modal,addComService){
return {
restrict: 'A',
link : function($scope, $element, $attributes){
$element.on('click',function(){
modal();
});
var modal = function(){
var modalInstance = $modal.open({
animation: $scope.animationsEnabled,
templateUrl: 'templates/modal/addCom.html',
controller: function($scope,$modalInstance){
$scope.selected = {};
$scope.disabled = true;
$scope.$watch(
function(){
return $scope.selected;
},
function(newVal,oldVal){
//срабатывает только при вызове окна
console.log(newVal);
//срабатывает только при вызове окна
console.log(oldVal);
},
true
);
}
})
};
}
}
});
$watch срабатывает только при открытии модального окна. При изменении модели selected $watch не срабатывает, хотя если выводить значение модели в виде, видно, что данные меняются.