Java 从列表到详细信息的角度重定向-使用共享服务或传递id并调用webservice

Java 从列表到详细信息的角度重定向-使用共享服务或传递id并调用webservice,java,angularjs,Java,Angularjs,我有一个列表视图,假设有四列:id、name、description和value。然后我想重定向到item details视图。我正在使用角度用户界面路由器。什么是更好的实践: 使用共享服务,我可以在列表视图中存储所选对象(例如,调用setSelectedItem),并在详细信息页面上调用getSelectedItem 传入URL所选项目id(例如my_app/#/details/selected_item_id),并在详细信息视图中调用REST服务获取项目详细信息,例如POST my_app/

我有一个列表视图,假设有四列:id、name、description和value。然后我想重定向到item details视图。我正在使用
角度用户界面路由器
。什么是更好的实践:

  • 使用共享服务,我可以在列表视图中存储所选对象(例如,调用
    setSelectedItem
    ),并在详细信息页面上调用
    getSelectedItem
  • 传入URL所选项目id(例如
    my_app/#/details/selected_item_id
    ),并在详细信息视图中调用REST服务获取项目详细信息,例如
    POST my_app/services/getItemDetails

  • 你可以同时使用它们。。。 通过服务在控制器之间共享对象是一种常见的方式,但应谨慎管理

    传递和对象的id并从服务器获取数据是一种受信任的方式,但如果您的列表视图中已经有完整的对象,并且您确信该对象不会发生更改,那么您可能不想对服务器进行额外调用

    正如我在第二个参数中提到的,如果您只想共享对象而不进行调用,那么您也可以使用angular ui router的resolve属性。。。您可以在…中找到详细信息


    但您是否保证对象此时不会更改?

    是的,我保证对象此时不会更改。我一直在苦苦思索这个问题:我的应用程序是否应该更安全,是否应该向服务器发出额外的呼叫,还是应该使用共享服务来存储整个对象。但您已经写过,这两种方法都是正确的。用户可以在详细信息页面刷新页面,您的共享服务的数据将被清除,从而导致所有数据丢失。。。有很多这样的场景…所以我应该像使用角度缓存一样使用这个共享服务吗?不仅要存储一个元素,还要存储例如20个元素?我想我需要找到一篇关于使用共享服务的好文章。我只在需要像指令的控制器那个样在同一页中向另一个控制器传递数据时才使用它。它更像是一个模板变量…感谢您的完整解释。现在我知道,当我想使用共享服务时,我需要更加小心。我决定给服务器打一个额外的电话,以便更“安全”。