0

有没有办法将有角度的“实时 DOM”转换为扁平的纯 html?我的意思是转这个:

<!-- ngRepeat: ref in refs track by $index -->
<p ng_repeat="ref in refs track by $index" class="ng-scope ng-binding">a0120</p>
<p ng_repeat="ref in refs track by $index" class="ng-scope ng-binding">a0241</p>
<p ng_repeat="ref in refs track by $index" class="ng-scope ng-binding">z1242</p>
<p ng_repeat="ref in refs track by $index" class="ng-scope ng-binding">a0120</p>

进入这个:

<p>a0120</p>
<p>a0241</p>
<p>z1242</p>
<p>a0120</p>

当然,与角度编译过程无关的类和属性将被保留。

谢谢

谢谢

4

3 回答 3

1

猜测最好的方法是遍历 DOM

如果有人想要使用它,改进它或完全改变它,这是我正在使用的代码......

attr 和 class 列表显然不完整。

function cleanAngularStuff(el) { //recursive function

    var remClassList = ['ng-scope', 'ng-model', 'ng-binding', 'ng-isolate-scope']
    var remAttrList = ['ng-repeat']

    // If node is a comment just remove it
    if (el.nodeType == 8) {
        el.parentNode.removeChild(el);
    }
    // If its an element remove extra attributes and classes and recurse children
    else if (el.nodeType == 1) {

        // Remove extra classes. If none is left remove class attribute
        for (var i = 0; i < remClassList.length; i++) {
            el.classList.remove(remClassList[i]);
            if (el.classList.length == 0) {
                el.removeAttribute('class')
            }
        }

        // Remove attributes
        for (var h = 0; h < remAttrList.length; h++) {
            el.removeAttribute(remAttrList[h])

        }

        // Recurse children
        for (var i = 0, len = el.childNodes.length; i < len; i++) {
            cleanAngularStuff(el.childNodes[i])
            // If child comment is removed decrease cursor
            if (len > el.childNodes.length) {
                len = el.childNodes.length
                i--
            }
        }

    }
}
于 2013-10-16T14:10:25.460 回答
0

我不确定您到底要做什么,但如果它是用于单页网络应用程序的 SEO 目的,您可能需要查看这篇文章

http://www.yearofmoo.com/2012/11/angularjs-and-seo.html

于 2013-10-15T01:27:48.770 回答
0

您无法使用正则表达式解析 HTML 或 XML 类似文档。看看这个讨论:RegEx match open tags except XHTML self-contained tags

最好使用 HTML/XML 编辑器。

于 2013-10-15T00:59:07.983 回答