Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.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 角度-$手表上的$脏表不工作?_Angularjs_Angularjs Scope - Fatal编程技术网

Angularjs 角度-$手表上的$脏表不工作?

Angularjs 角度-$手表上的$脏表不工作?,angularjs,angularjs-scope,Angularjs,Angularjs Scope,我试图观察使用Angular 1.x对表单的更改。我这样做是为了在用户在保存数据之前离开页面时显示警告。我可以$watchforform.$有效,很好,但form.$dirty永远不会开火。因此,明确地说,这是可行的: $scope.$watch('forms.editForm.$valid', function (newVal, oldVal) { // This is how we tell if there are unsaved form changes so we don't

我试图观察使用Angular 1.x对表单的更改。我这样做是为了在用户在保存数据之前离开页面时显示警告。我可以$watchforform.$有效,很好,但form.$dirty永远不会开火。因此,明确地说,这是可行的:

$scope.$watch('forms.editForm.$valid', function (newVal, oldVal) {
    // This is how we tell if there are unsaved form changes so we don't navigate away
    $scope.unsavedFormChanges = oldVal;
}, true);
$scope.$watch('forms.editForm.$dirty', function (value) {
    // This is how we tell if there are unsaved form changes so we don't navigate away
    $scope.unsavedFormChanges = value;
    $log.info('Form Dirty Changed: ' + value);
}, false);
但这并不是:

$scope.$watch('forms.editForm.$dirty', function (newVal, oldVal) {
    // This is how we tell if there are unsaved form changes so we don't navigate away
    $scope.unsavedFormChanges = oldVal;
}, true);

有谁能告诉我为什么我不能观看$dirty,如果有备份计划的话谢谢

在我的头撞到墙上够久之后,我想我已经明白了这一点。似乎$valid是一个对象,$dirty是一个值。这就是第三个参数的作用。$watch语句末尾的“true”告诉$watch它正在看什么。True表示它是一个对象,False表示它是一个值。也就是说,这是可行的:

$scope.$watch('forms.editForm.$valid', function (newVal, oldVal) {
    // This is how we tell if there are unsaved form changes so we don't navigate away
    $scope.unsavedFormChanges = oldVal;
}, true);
$scope.$watch('forms.editForm.$dirty', function (value) {
    // This is how we tell if there are unsaved form changes so we don't navigate away
    $scope.unsavedFormChanges = value;
    $log.info('Form Dirty Changed: ' + value);
}, false);

我还将oldval/newval更改为一个值,因为这是我们得到的全部

在我的头撞到墙上足够长的时间后,我想我已经明白了这一点。似乎$valid是一个对象,$dirty是一个值。这就是第三个参数的作用。$watch语句末尾的“true”告诉$watch它正在看什么。True表示它是一个对象,False表示它是一个值。也就是说,这是可行的:

$scope.$watch('forms.editForm.$valid', function (newVal, oldVal) {
    // This is how we tell if there are unsaved form changes so we don't navigate away
    $scope.unsavedFormChanges = oldVal;
}, true);
$scope.$watch('forms.editForm.$dirty', function (value) {
    // This is how we tell if there are unsaved form changes so we don't navigate away
    $scope.unsavedFormChanges = value;
    $log.info('Form Dirty Changed: ' + value);
}, false);
我还将oldval/newval更改为一个值,因为这是我们得到的全部