在javascript中加载html内容

时间:2015-06-29 08:02:46

标签: javascript jquery html angularjs

我想做的事情:

我正在开发Angular SPA,并且我想在scope中加载一些html内容以便显示它。

我做了什么:

根据SO问题(herehere),我创建了一个加载目标文件的函数,并将其内容加载到scope中(代码来自Jason Sturges建议) :

 function loadPage(href) {

      var xmlhttp = new XMLHttpRequest();
      xmlhttp.open("GET", href, false);
      xmlhttp.send();
      return xmlhttp.responseText;
 }

$scope.pageContent = loadPage("html_file.html")

一起使用

问题:

那时,加载了html内容。问题是,它不是由Chrome解释,而是显示为纯文本' (我猜它是正确的术语),像这样:

 <div><h4>...</h4></div>

我该怎么办?

1 个答案:

答案 0 :(得分:3)

根据您的angularJs版本,它可以更改,但基于角度1.3,您应该将ng-bind-html指令与$sce服务一起使用:

在模板中:

@SuppressWarnings("serial")
@Entity
@Immutable
@Table(name = "T_ADDRESS_INFO")
public class AddressInfo implements java.io.Serializable {


    public class Coordinate {

        double latitude;
        double longitude;

        Coordinate(int latitude, int longitude) {
            this.latitude = latitude;
            this.longitude = longitude;
        }

        @Column(name = "LATITUDE")
        public double getLatitude() {
            return latitude;
        }

        public void setLatitude(double latitude) {
            this.latitude = latitude;
        }

        @Column(name = "LONGITUDE")
        public double getLongitude() {
            return longitude;
        }

        public void setLongitude(double longitude) {
            this.longitude = longitude;
        }
    }

    private Long id;
    private String street;
    private String address;
    private String code;
    private String city;
    private String phone;
    private String fax;
    private String email;
    private String website;
    private String info;


    public AddressInfo() {
    }

在控制器中:

<div ng-bind-html="securedHtml"></div>

和其他答案一样,使用内部$http服务(或ngResource)进行ajax调用。