Angular- $ Watch for $ dirty在不起作用的表格上



我正在尝试使用Angular 1.x进行更改。我正在这样做,以便如果用户在保存数据之前从页面上导航,我可以显示警告。我可以$ to $ for form。$有效,但是形式。可以明确的是,这有效:

$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 (newVal, oldVal) {
    // This is how we tell if there are unsaved form changes so we don't navigate away
    $scope.unsavedFormChanges = oldVal;
}, true);

任何人都可以启发我为什么我不能看$ dirty,如果有这样做的备用计划? - 谢谢

在将头撞到墙上足够长的时间后,我想我已经弄清楚了。$有效似乎是一个对象,而$ dirty是一个值。这就是第三个参数所在的地方。$ Watch语句结束时的" True"告诉$观看它在观看的内容。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更改为一个值,因为这就是我们所得到的。

我无法将手表可靠地在$ dirty属性上可靠地射击,所以我看了更改的模型,然后检查了dirty属性

    $scope.$watch("$scope.data", function () {
        if ($scope.myform.$dirty) $rootScope.pageDirty = true;
    }, true);

最新更新