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 使用角度';使用默认html绑定html_Javascript_Angularjs_Dom_Ng Bind Html - Fatal编程技术网

Javascript 使用角度';使用默认html绑定html

Javascript 使用角度';使用默认html绑定html,javascript,angularjs,dom,ng-bind-html,Javascript,Angularjs,Dom,Ng Bind Html,我正在写一个网站,我正在使用Angular添加一个迷人的体验。该网站不使用JS,但对于体面的浏览器,内容将以HTML片段的形式动态注入(没有前端模板语言) 我有一个表示页面内容的块,最初应该包含来自服务器的html内容,然后替换为来自Ajax函数的html片段 我希望在中使用带有默认内容的ng bind html,但是,一旦角度引导清空此元素,并用ng bind html绑定到的pageContent变量的内容替换它(如预期的那样) 在控制器中的变量更新之前,是否有任何方法阻止ng bind h

我正在写一个网站,我正在使用Angular添加一个迷人的体验。该网站不使用JS,但对于体面的浏览器,内容将以HTML片段的形式动态注入(没有前端模板语言)

我有一个表示页面内容的块,最初应该包含来自服务器的html内容,然后替换为来自Ajax函数的html片段

我希望在中使用带有默认内容的
ng bind html
,但是,一旦角度引导清空此元素,并用
ng bind html
绑定到的
pageContent
变量的内容替换它(如预期的那样)

在控制器中的变量更新之前,是否有任何方法阻止
ng bind html
删除默认内容

另一个选择是在引导之前收集元素的内容,但我不认为这是一个非常优雅的解决方案

我的页面中的一些示例代码:

<div id="content" ng-bind-html="pageContent">

    <h2>Home page</h2>
    <div>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit.
    </div>

</div>

主页
Lorem ipsum dolor sit amet,奉献精英。

理想情况下,
#content
div中的HTML内容将保留在页面上,直到我更新
$scope.pageContent
变量。有什么想法吗?

我认为你想做的事情应该如下:

<div ng-if="pageContent" id="content" ng-bind-html="pageContent"></div>
<div ng-if="!pageContent">
    <h2>Home page</h2>
    <div>
        Lorem ipsum dolor sit amet, consectetur adipisicing elit.
    </div>

</div>

主页
Lorem ipsum dolor sit amet,奉献精英。
或使用
ngSwitch


我认为您应该能够在元素上设置display:none,并在
pageContent
可用时将其删除

编写一个自定义指令,用一些额外的函数扩展
ng bind html
,这可能是一个解决方案


这是我为使用
ng bind html unsafe
创建的一个文件,现在我编辑它以等待使用以前的内容替换html字符串…

这是一个非常好的解决方案。我会坚持下去,看看是否有什么本土的东西我错过了,否则我会把这个标记为正确的答案。