如何在控制器中访问$ ngmodel。$ viewValue?我有一个ui-mask,它没有为ng-model生成正确的值,所以我想从输入字段中提取我看到的值。
答案 0 :(得分:4)
我相信如果您的输入包含在具有name属性的表单中,并且输入字段本身具有name属性,则可以在控制器中获取它。
说
<form name="myForm">
<input type="text" name="myInput" ng-model="myInput"/>
</form>
您可以使用
在控制器中访问此表单 $scope.myForm.myInput.$viewValue
myInput
是ngModelController
答案 1 :(得分:1)
您可以拥有一个需要ngModel
的自定义指令,从而获得对ngModelController
的访问权限。然后,您可以访问 $viewValue
, $modelValue
以及一些非常有用的内容,例如 $parsers
< / strong>, $formatters
等
您可以在 the docs 中阅读所有相关内容。
E.g:
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;
});
}
};
});