我的角度应用程序在发布后清除数据。
这是来自控制器的代码片段:
$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)。从服务器返回数据后,将使用实际数据填充现有引用。这是一个有用的技巧,因为通常资源被分配给一个模型,然后由视图呈现。如果对象为空,则不会呈现,一旦数据从服务器到达,该对象就会填充数据,视图会自动重新呈现自身,显示新数据。这意味着在大多数情况下,永远不必为操作方法编写回调函数。