繁体   English   中英

Angular指令将ngmodel值更改为undefined

[英]Angular directive change ngmodel value to undefined

我正在使用这张表格

<div ng-controller="TestController">
    <form ng-submit="saveForm()">
        <input type="text" name="test" ng-model="testData" test="{{testValue}}"/>
        <input type="submit" value="Save"/>
    </form>
</div>

和这个角度代码:

app.controller('TestController', [ '$scope', function($scope) {
    $scope.testData="testValue";

    $scope.saveForm = function(){
        console.log($scope.testData);
    }

}]);

app.directive('test', function($parse) {
return {
  require: 'ngModel',
  link: function(scope, elm, attrs, ctrl) {
    ctrl.$validators.validators = function(modelValue, viewValue) {
    };
  }
};
});

在更改输入值并单击保存后,我在$ scope.testData中获得了未定义的值。 为什么以及如何避免这种情况?

我正在尝试添加:

scope.testData = viewValue;

内部功能:

ctrl.$validators.validators

但这是行不通的,只能轮流使用。

您的验证程序需要为要设置的值返回true,否则它将是未定义的

如果有效性更改为无效,则除非ngModelOptions.allowInvalid为true,否则模型将设置为undefined。 如果有效性更改为有效,它将把模型设置为最后一个可用的有效modelValue,即最后解析的值或从范围设置的最后一个值。

ctrl.$validators.validators = function(modelValue, viewValue) {
    return modelValue !== '';
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM