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

时间:2014-12-12 14:44:36

标签: angularjs ngresource

my angular app会在帖子后清除数据。

以下是来自控制器的片段:

$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){"应用程序显示设备填充了表单中的属性。但是在帖子之后,设备被清除了任何属性。这种正常行为?如果是这样,我该如何预防呢?

2 个答案:

答案 0 :(得分:1)

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

AngularJS - Prevent Form Clear

基本上:

调用类方法

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

而不是

$ scope.device。$保存​​

它会在$ scope.device类中预先存储您的数据。

答案 1 :(得分:0)

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

Angular Doc

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