【问题标题】:angular resource clears object data after post角度资源在发布后清除对象数据
【发布时间】:2015-02-11 07:21:18
【问题描述】:

我的 Angular 应用在​​发布后清除数据。

这是来自控制器的 sn-p:

$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 ngresource


    【解决方案1】:

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

    AngularJS - Prevent Form Clear

    基本上:

    调用类方法

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

    而不是

    $scope.device.$save

    它会保存你在 $scope.device 类中的数据。

    【讨论】:

      【解决方案2】:

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

      Angular Doc

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

      【讨论】:

      • 只有在类方法上调用资源时才会出现这种情况,而不是实例方法上
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多