Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 为什么在以编程方式更改时ng模型未设置为未定义?_Angularjs_Validation - Fatal编程技术网

Angularjs 为什么在以编程方式更改时ng模型未设置为未定义?

Angularjs 为什么在以编程方式更改时ng模型未设置为未定义?,angularjs,validation,Angularjs,Validation,问题中的plunker示例: 根据: 如果我们想以编程方式更改控件的DOM值,我们应该更新ngModel范围表达式。它的新值将由模型控制器获取,模型控制器将通过$formatters运行它,渲染它以更新DOM,最后对它调用$validate 因此,在plunker中,我通过“setNameToSomethingInvalid”将范围表达式更新为一个新值。其关联的ngModelController显然设置为无效,因此我希望以下内容适用: 如果有效性更改为无效,则模型将设置为未定义 相反,模型值设

问题中的plunker示例:

根据:

如果我们想以编程方式更改控件的DOM值,我们应该更新ngModel范围表达式。它的新值将由模型控制器获取,模型控制器将通过$formatters运行它,渲染它以更新DOM,最后对它调用$validate

因此,在plunker中,我通过“setNameToSomethingInvalid”将范围表达式更新为一个新值。其关联的ngModelController显然设置为无效,因此我希望以下内容适用:

如果有效性更改为无效,则模型将设置为未定义

相反,模型值设置为无效字符串。我做错了什么

强制插入代码:

// controller definition
var vm = this;
var initialName = "a valid name";
vm.user = {
  name: initialName
};

vm.setNameToSomethingInvalid = function setNameToSomethingInvalid() {
  vm.user.name = "not-a-valid-name";
};

vm.resetName = function resetName() {
  vm.user.name = initialName;
};

// html input declaration
<input id="name"
  name="name"
  type="text"
  ng-pattern="/^[a-z ]+$/"
  ng-model="vm.user.name">
//控制器定义
var vm=这个;
var initialName=“有效名称”;
vm.user={
姓名:姓名首字母
};
vm.setNameToSomethingInvalid=函数setNameToSomethingInvalid(){
vm.user.name=“not-a-valid-name”;
};
vm.resetName=函数resetName(){
vm.user.name=初始名称;
};
//html输入声明

Angular文档说:$modelValue*控件绑定到的模型中的值。我确实看到了,似乎不一致。但是,如果modelValue始终是解析的ng模型表达式,那么这是如何以编程方式更新dom的方法呢?我们的状态是无效的,这是不好的!Angular doc说:$modelValue*控件绑定到的模型中的值。我确实看到了,似乎不一致。但是,如果modelValue始终是解析的ng模型表达式,那么这是如何以编程方式更新dom的方法呢?我们的状态是无效的,这是不好的!