使用 AngularJS 将 JS 对象从一个服务复制到另一个服务

Copy a JS Object from Service to Service using AngularJS

Web 应用程序中有一个向导。每个页面中的用户将 select 来自 table 的一行或多行。将有一个包含 selected 行的服务,每个 table 一个数组。特别是该服务将具有:

    return {
    name: null,
    toys: [],
    foods: [],
    albums: []
   };

当用户在下一个向导页面中前进时,有一种方法可以将 selected 行放入数组中。

现在,我要做的是在最后一页(即摘要页)中创建一个服务。该服务将包含几乎所有其他阵列服务。特别是,它将只包含 toys[] 和 albums[]。 因此,目标是创建一个服务并添加 toys[....all selected toys....] 的副本和 albums[.......all select编辑专辑......]。

当然,问题不在于创建Service,而是用另一个Object 的数组副本填充它。我该怎么办?

如果我对问题的理解正确,您需要这些数组的应用级存储。如果这确实是你想要的,你可以简单地使用一个值来存储这些数组并从任何服务、控制器访问它,无论你将它注入到什么。

类似于:

.value("Storage", { toys: [], albums: [] })
.service("MyToysService", function(Storage) {
    this.addToy = function(toy) {
        Storage.toys.push(toy);
    }
})

您将可以完全访问 Storage 对象及其所有数组,无论您将其注入何处。在一个地方更改它会在您使用它的任何地方更改它,因为 Storage 只是一个对象。