角度资源在发布后清除对象数据



我的角度应用程序在发布后清除数据。

这是来自控制器的代码片段:

$scope.saveDevice = function() {
            var deviceId = $scope.device.id;
            if (deviceId) {
                $scope.device.$update(function(result) {
                    $location.path('/devices');
                });
            } else {
                $scope.device.$save().then(function (deviceResult) {
                    $scope.device.id = deviceResult.deviceId;
                    $scope.device.$activationCode(function (result) {
                        $scope.device.activationCode = result.activationCode;
                    });
                });
            }
        };

当我在"$scope.device.$save().then(function (deviceResult) {" 应用程序显示设备填充了表单中的属性。但是在发布后,设备将清除任何属性。这是正常行为吗?如果是这样,我该如何防止?

在这里,我找到了问题的答案:

AngularJS - 防止表单清除

基本上:

调用类方法

Device.save($scope.device)//....

而不是

$scope.设备.$save

它将抵制您在 $scope.device 类中的数据。

我不确定这是否有帮助,但来自文档。 这太长了,无法作为评论。

角度文档

重要的是要认识到,调用$resource对象方法会立即返回一个空引用(对象或数组,具体取决于 isArray)。从服务器返回数据后,将使用实际数据填充现有引用。这是一个有用的技巧,因为通常资源被分配给一个模型,然后由视图呈现。如果对象为空,则不会呈现,一旦数据从服务器到达,该对象就会填充数据,视图会自动重新呈现自身,显示新数据。这意味着在大多数情况下,永远不必为操作方法编写回调函数。

最新更新