从控制器获取$ viewValue

时间:2014-03-30 01:43:26

标签: jquery angularjs angularjs-directive angularjs-scope angular-ui

如何在控制器中访问$ ngmodel。$ viewValue?我有一个ui-mask,它没有为ng-model生成正确的值,所以我想从输入字段中提取我看到的值。

2 个答案:

答案 0 :(得分:4)

我相信如果您的输入包含在具有name属性的表单中,并且输入字段本身具有name属性,则可以在控制器中获取它。

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

您可以使用

在控制器中访问此表单

$scope.myForm.myInput.$viewValue

myInputngModelController

的一个实例

答案 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;
            });
        }
    };
});