如何在角度js中跨页面传递数据

时间:2016-07-24 10:51:26

标签: javascript java angularjs spring-mvc

在我的主页上有两个链接。单击其中应显示包含一些预定义数据的表。以下是主页面的代码 -

adminHomeContent.jsp

<body>
        <div id="page-wrapper" >
            <div id="page-inner">
                <a href="getfeedbackList">Get List Normal</a>
                <div class="row text-center pad-top">                                    
                   <a ng-click="setRoute('feedbacklist')">Get List Angular JS</a>             
                </div>              
            </div>
        </div>       
</body>

问题是如果我点击Get List Normal。它正确显示结果,但在不同的页面上不会进行部分页面更新(尽管可以使用iframe完成)。如果我点击Get List Angular它会转到该页面,但我无法将任何数据发送到新页面。

对于Get List Normal,我们在控制器中映射了url -

HelloController .java

public class HelloController {

    @Autowired
    FeedbackServices feedbackServices;

    @RequestMapping(value = "/", method = RequestMethod.GET)
    public ModelAndView getData() {
        System.out.println("Home Controller");
        ModelAndView model = new ModelAndView("adminHome");
        return model;

    }

    @RequestMapping(value = "getfeedbackList", method = RequestMethod.GET)
    public ModelAndView getfeedbackList(ModelAndView model) throws IOException {
        System.out.println("getfeedbackList Controller");
        List<FeedbackBean> listFeedback = feedbackServices.getFeedbacklist();
        return new ModelAndView("feedbacklist", "listFeedback", listFeedback);

    }

}

在角度js中,页面导航正在由此完成 -

successLadder.js

angular.module('successladder', [])
        .config(function ($routeProvider)
        {
            $routeProvider
                    .when('/feedbacklist', {template: 'partial/pages/feedbacklist.jsp'})
                    .otherwise({redirectTo: '/adminHomeContent', template: 'partial/pages/adminHomeContent.jsp'});
        });

function MainCtrl($scope, $location)
{
    $scope.setRoute = function (route)
    {
        $location.path(route);
    };
    $scope.showModal = false;
    $scope.toggleModal = function () {
        $scope.showModal = !$scope.showModal;
    };
}

我可以用iframe来实现它,但我想用angualr js来做。知道如何在angualr js中实现这个吗?

2 个答案:

答案 0 :(得分:0)

我并不完全遵循您的用例,但创建一个服务来保存数据,然后在多个控制器中注入所述服务是否有意义?此外,如果此列表视图在不同位置相同,则编写指令以处理所述数据的实际呈现可能是最有意义的。

答案 1 :(得分:0)

查看创建AngularJS服务。服务以单身形式存在,因此在您的应用中是全球性的。因此,如果您要保留要在服务中共享的数据,您将能够跨不同页面访问它。

首次了解服务时,这对我有很大帮助:https://www.airpair.com/angularjs#6-services-and-factories

希望这会有所帮助。