【问题标题】:not able to render the request to another html from controller using angularjs无法使用 angularjs 将请求从控制器呈现到另一个 html
【发布时间】:2016-05-20 08:59:39
【问题描述】:

我有一个页面 A。在提交它时,它需要使用在页面 A 上输入的值来呈现页面 B。页面 A 被映射到控制器 A,并且在单击事件时我正在调用 Spring 控制器来呈现页面 B .

问题是我无法获取页面 A 的详细信息并显示在页面 B 上。 我尝试了共享服务,但是一旦它到达页面 B 控制器,它就变得未定义。

非常感谢您的帮助。

【问题讨论】:

    标签: javascript angularjs spring model-view-controller


    【解决方案1】:

    如果您使用 Angular js 的路由概念,那么在 rootscope 中您可以存储该数据,但如果您提交页面,则 Angular 范围丢失,那么最终您将获得未定义的数据。

    因为 Angular js 用于单页应用程序。 可选的解决方案是您可以将其存储在 html5 的 localstorage 中,或者将数据与请求一起发送并重复使用。

    即当您调用返回页面 B 的请求时,您可以通过请求将数据发送到服务器,然后将该数据与 spring 请求的响应一起返回,但是您必须发送 json 响应。

    【讨论】:

    • 但我需要将它呈现到新的 html 页面。目前我正在将数据发送到服务器并在模型中进行设置。但它没有呈现到页面 B。我想在页面 B 中获取页面 A 的详细信息。我没有使用角度路由器,而是使用弹簧控制器进行路由。从使用 windows.location.href 的角度控制器到弹簧控制器。有没有更好的角度方法将页面 A 的详细信息传递给页面 B。两个页面都使用不同的角度控制器。
    • 然后将其存储在 localStorage 是您可以使用的一种方法,但在这种情况下,您需要对页面 A 数据进行字符串化,然后您需要将其存储在 localstorage 中,当您的页面 B 加载时,您需要通过再次将其解析为 json 从本地存储中获取此数据。在本地存储中,您可以将数据存储为地图,例如 ---> localstorgae.set("pageAData","data of page");但请确保您需要在排序时对其进行字符串化,并在页面 B 中对其进行重新解析时对其进行 Json.parse 。
    • 当您将请求发送到您的字符串控制器时,您需要将页面 A 数据存储在本地存储中,并且当您的页面 B 呈现时,您需要从本地存储中访问该数据
    【解决方案2】:

    尝试使用$rootscope

    在第一个控制器中将值设置为 rootscope 并从第二个控制器中读取。

    升级您的导航以使用route,以便您也可以将一些参数发送为routeparams

    如果您的设计允许,写入本地存储也是一种方法。

    【讨论】:

    • 如果您的设计允许,写入本地存储也是一种方法。
    • 我试过 $rootscope。但问题来自控制器 A,它调用 Spring Controller,这将返回一个视图 Page B 和 Page B 角度控制器被调用。在这种情况下,rootscope 值在 Page B 角度控制器中未定义。
    • 在您的两个页面中的角度范围不同。所以试试本地存储吧。
    • 或者您可以将数据带到服务器(spring)并通过响应提供。
    • 它作为 Spring 的响应返回。但在这种情况下的问题是它没有重定向到页面 B。它显示页面 A 本身。我的 Spring 方法返回 ModelAndView 对象,视图名称为 Page B。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多