1

如何在控制器中訪問$ ngmodel。$ viewValue?我有一個UI面具,它不會爲ng模型生成正確的值,所以我想提取從輸入字段中看到的值。

+1

可能是相關的 - http://stackoverflow.com/questions/17116730/how-to-access-the-ngmodelcontroller-from-inside-the-controller-without-a- A型 – miqid

回答

4

我相信如果你輸入被包裹其中有name屬性和輸入字段的表單內本身name屬性你可以得到它的控制器。

<form name="myForm"> 
    <input type="text" name="myInput" ng-model="myInput"/> 
</form> 

你可以在你的控制器使用

$scope.myForm.myInput.$viewValue

myInputngModelController

1

實例訪問這種形式可以有需要ngModel從而自定義指令獲得訪問ngModelController。然後你就可以訪問$viewValue,則$modelValue和幾個真正有用的東西,如$parsers$formatters
可以將所有關於它的讀取the docs

如:

myApp.directive('myDirective', function() { 
    return { 
     restrict: 'A', 
     require: 'ngModel', 
     link: function postLink(scope, elem, attrs, modelCtrl) { 
      // Here you have access to: 
      //modelCtrl.$viewValue 
      //modelCtrl.$modelValue 
      //modelCtrl.$parsers 
      //modelCtrl.$formatters 
      // e.g.: 
      $modelCtrl.$parsers.push(function (viewValue) { 
       // The $viewValue has changed. Let's just log it 
       // and pass it on unaffected... 
       console.log(viewValue); 
       return viewValue; 
      }); 
     } 
    }; 
});