Jak uzyskać dostęp do kontrolera $ ngModel z kontrolera bez formularza i bez dyrektywy

Może to nowicjusz, ale nie mogę uzyskać dostępu do$scope.modeljest$ngModelController więc mogę złapać$viewValue z tego.

Mam dane wejściowe bez formularza (im using ui-mask Directive):

<input type="text" ng-model="inicio" name="inicio" ui-mask="99/99/9999">
// inside my controller
$scope.inicio = dateFilter((new Date).getTime(), 'dd/MM/yyyy');

maska-ui ustawia wartość $ modelValue na inną wartość niż $ viewValue, co utrudnia wysłanie sformatowanych danych na serwer. Kiedy$scope.inicio model zmienia się, wartość jest datą bez ukośników, jak01012014. Muszę więc mieć kontroler dla tego wejścia, ale bez konieczności zawijania go w formę i używania$scope.myForm.inicio.$viewValue. To musi być możliwe ...

Rzeczy, które wiem, że mogę zrobić, ale wydają się hacky, muszą być prostsze:

Umieść element w formularzu i przejdź przez niego$scope.myForm.input.$viewValuePobierz dane elementu za pomocą jQuery$('input[name="inicio"]').data('$ngModelController');Użyj elementuangular.element('input[name="inicio"]').controller('ngModel');Utwórz dyrektywę, umieść ją na wejściu i zaktualizuj za jej pomocą mój model zasięgu
app.directive('viewValue', function(){
  return {
    priority: 10,
    require: 'ngModel',
    link: function(scope, element, attrs, controller){
      scope.$watch(attrs.viewValue, function(newValue, oldValue){
        if (newValue !== oldValue){
          scope[attrs.viewValue] = controller.$viewValue;
        }
      });
    }
  }
});
<input type="text" ui-mask="99/99/9999" ng-model="inicio" view-value="inicio">

questionAnswers(1)

yourAnswerToTheQuestion