Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.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
Javascript 触发$scope.$watch后更新表单输入名称值_Javascript_Html_Angularjs_Forms_Angularjs Scope - Fatal编程技术网

Javascript 触发$scope.$watch后更新表单输入名称值

Javascript 触发$scope.$watch后更新表单输入名称值,javascript,html,angularjs,forms,angularjs-scope,Javascript,Html,Angularjs,Forms,Angularjs Scope,我使用的是AngularJS 1.4。我有一个表单输入元素,我正在尝试动态设置name属性 <input type="email" name="{{ctrl.name}}" class="form-control" id="email" ng-minlength="5" required> 即使触发了$scope.$watch,并且将vm.name变量分配给了有效值,但在我的表单中未检测到该值。有解决办法吗 如果您试图查看范围中的特定变量,我建议您更改: $scope.$watch

我使用的是AngularJS 1.4。我有一个表单输入元素,我正在尝试动态设置name属性

<input type="email" name="{{ctrl.name}}" class="form-control" id="email" ng-minlength="5" required>

即使触发了
$scope.$watch
,并且将
vm.name
变量分配给了有效值,但在我的表单中未检测到该值。有解决办法吗

如果您试图查看范围中的特定变量,我建议您更改:

$scope.$watch(function(scope) {
    ...
});
致:

其中,
varyouareawatching
是您要查看的变量



如果您试图查看范围中的特定变量,我建议您更改:

$scope.$watch(function(scope) {
    ...
});
致:

其中,
varyouareawatching
是您要查看的变量



无论尝试什么操作都是有效的
$watcher
表达式,因为watcher可以是一个函数。。但我唯一怀疑的是,如果OP想在整个对象上放置一个监视程序,那么他应该作为
deep watcher
来检测
vm上的变化。obj
您可以使用该函数来监视范围变量,这是将控制器与变量解耦的更好方法(参见此处..)。正如我提到的,问题不是手表没有被触发。它被触发,但在表单中未检测到更改。无论尝试什么操作,都是有效的
$watcher
表达式,因为watcher可以是一个函数。。但我唯一怀疑的是,如果OP想在整个对象上放置一个监视程序,那么他应该作为
deep watcher
来检测
vm上的变化。obj
您可以使用该函数来监视范围变量,这是将控制器与变量解耦的更好方法(参见此处..)。正如我提到的,问题不是手表没有被触发。已触发,但未在表单中检测到更改。
$scope.$watch('varYouAreWatching', function(newValue, oldValue) {
    ...
});