如何在$ http.post之后加载返回的html

时间:2015-10-22 14:58:24

标签: angularjs angularjs-http

很抱歉,如果已经提出这个问题,但我找不到答案!

我使用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
  }
);

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

1 个答案:

答案 0 :(得分:0)

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

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

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