【问题标题】:How to load returned html after $http.post如何在 $http.post 之后加载返回的 html
【发布时间】:2015-10-23 00:27:31
【问题描述】:

对不起,如果已经问过这个问题,但我找不到答案!

我正在使用 Angular 发布几乎可能是表单数据的内容,并希望后端返回一个 html 页面。如何加载该页面?

$http.post(GENERATE_PRACTICE_EXAM_URL, data).then(
  function(data){
    # data contains the html of a page I'd like to load/redirect to
    # $window.loadAsHtml(data); <-- want to do that
  }
);

澄清: 我知道我可以从服务器返回一个 url 并拉一个$location.path(data.data)。但我想要的是返回下一页的 html,并立即加载,以避免使用$location 发出另一个请求。

【问题讨论】:

    标签: angularjs angularjs-http


    【解决方案1】:

    实际上,您应该将服务器用作数据存储。它应该返回 JSON,并且您应该使用角度指令来显示该数据。 但如果你真的需要从服务器获取 html 并显示它,你应该为此创建一个 directive

    有“链接”功能,您可以在其中访问 html 元素,然后只需插入您的 html 即可

    directive('myDirective', function($http){
      return {
        link:function(scope, elem){
              $http.get('your url').then(function(htmlResponse){elem.html(htmlResponse)});
             }
     };
    });
    

    【讨论】:

    • 是的,这绝对适用于单页网站,但我们实际上使用 django 作为后端并使用它进行大部分路由,所以大多数时候服务器返回完全形成的 html 而不仅仅是json中的数据。
    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    相关资源
    最近更新 更多