Javascript 触发$scope.$watch后更新表单输入名称值
我使用的是AngularJS 1.4。我有一个表单输入元素,我正在尝试动态设置name属性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
<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) {
...
});