Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript innerHTML正在返回文本而不是html_Javascript_Angularjs_Text_Innerhtml - Fatal编程技术网

javascript innerHTML正在返回文本而不是html

javascript innerHTML正在返回文本而不是html,javascript,angularjs,text,innerhtml,Javascript,Angularjs,Text,Innerhtml,我正在用angularjS做一个应用程序,我有这个函数来删除#(散列)并将它们组合成链接 $scope.getAllHashes = function(event){ var x = event; var collect = ''; var link = ''; for (i = 0; x.length > i; i++) { //remove # link = x[i].substr(1); col

我正在用angularjS做一个应用程序,我有这个函数来删除#(散列)并将它们组合成链接

$scope.getAllHashes = function(event){

    var x = event;
    var collect = '';
    var link = '';

    for (i = 0; x.length > i; i++) { 

        //remove #
        link = x[i].substr(1);

        collect += "<a href='#/search/" + link + "'>" + x[i] + "</a> ";

    }
    return document.getElementsByClassName('hashes').innerHTML = collect;
};
源来自此阵列:

$scope.events = 
[
    {

            id: 1,
            datetime: 'FRI, 6 NOV 10:00 AM',
            title: 'Event Title goes here - lalelalela',
            address: {
                road: '650 Address Rd',
                city: 'Toronto',
                state: 'Ontario',
                postal: 'A1B1C3',
                country: 'CA'
            },
            hashes: ['#aaa','#bbb','#cccc']

    }, .....
这是来自html源代码的代码

<span class="hashes ng-binding">
            &lt;a href='#/search/aaa'&gt;#aaa&lt;/a&gt; &lt;a href='#/search/bbb'&gt;#bbb&lt;/a&gt; &lt;a href='#/search/cccc'&gt;#cccc&lt;/a&gt; 
</span>

a href='#/search/aaa'#aaa/a href='#/search/bbb'#bbb/a href='#/search/cccc'#cccc/a

我不知道为什么它显示为文本而不是html。

对于html,您需要使用ng绑定html

<p ng-bind-html="getHashes({ data: eventObject.hashes })"></p>


请确保您已创建并包含对ngSanitize的依赖项。查看文档

我假设您使用ng bind或{{}}来输出带有角度的html,对吗?它只输出文本。如果要输出html,必须使用正确的指令。在控制器函数中更改元素的innerHTML可能也是一个坏主意。您应该更新数据,或者直接在视图中输出函数的结果。{{getHashes({data:eventObject.hashes}}}}}那么是的,您不能以这种方式输出html,只能输出字符串。我只是在调用函数。添加数据的是纯javascript。在功能范围内。在我使用.class的#id instad时,它就可以工作了。有更好的方法可以做到这一点。但是我想知道为什么它与ID一起工作而不与类一起工作,因为通过ID可以得到一个具有innerHTML属性的DOM节点,而通过类可以得到一个不具有innerHTML属性的DOM节点集合。。。不清楚为什么要这样做:return document.getElementsByClassName('hashes')。innerHTML=collect;首先,我认为我想做的是:D,我以后会改变它。更好的方法是在ng绑定html中调用函数@麦格拉菲克斯
<span class="hashes ng-binding">
            &lt;a href='#/search/aaa'&gt;#aaa&lt;/a&gt; &lt;a href='#/search/bbb'&gt;#bbb&lt;/a&gt; &lt;a href='#/search/cccc'&gt;#cccc&lt;/a&gt; 
</span>
<p ng-bind-html="getHashes({ data: eventObject.hashes })"></p>