当前位置: 首页 > 面试题库 >

AngularJS $ http HTML解析器

叶富
2023-03-14
问题内容

总而言之,我们正在使用AngularJS开发一个Web应用程序,并且我们有一个用例/需求(根本不会经常发生),在此我们需要从静态服务器中检索完整的HTML文档。但是,似乎$
http对象返回了原始HTML字符串作为其“数据”。我们试图避免使用外部库(例如jQuery),但是我们需要将该原始HTML字符串解析为可查询的DOM对象。我们可以使用iframe并完成它,但是出于众所周知的原因,我们也试图避免使用iframe。

因此,问题是:AngularJS是否具有HTML解析器(就像JSON一样)?否则,处理这种情况的最优雅方式是什么?

PS:我们曾尝试过筛选Angular的API文档,但老实说,它们是命中注定的,也不是直觉的。


问题答案:

如果您需要以编程方式从字符串中获取DOM元素,则将html解析为DOM对象非常简单。

基本上,您将使用DOMParser。

var parser = new DOMParser();
var doc = parser.parseFromString('<div>some html</div>', 'text/html');
doc.firstChild; //this is what you're after.

从那里开始,如果您想使用香草JS查询以从中获取元素(这意味着您出于某种原因不想使用JQuery),则可以执行以下操作:

//get all anchor tags with class "test" under a div.
var testAnchors = doc.firstChild.querySelectorAll('div a.test');

…但是请注意:querySelectorAll仅IE8和更高版本支持。

编辑:其他方法…

“包装”方法:

var div = document.createElement('div');
div.innerHTML = '<div>some html</div>';
var result = div.childNodes;

…请注意,如果将SVG或MathML放入其中,则此方法将返回HTMLUnknownElements。他们会“看起来”正常,但不会起作用。



 类似资料:
  • 本文向大家介绍AngularJS中的JSONP实例解析,包括了AngularJS中的JSONP实例解析的使用技巧和注意事项,需要的朋友参考一下 概念       首先呢,Json和JSONP是不一样的哦。Json呢,是众多数据存储的其中一种格式,是数据书写方式的其中一种。好比是大中华众多诗体的一种(比如说是七言诗吧)。这种诗体规定了: 这种诗体要包含题目,每行诗句的字数(7个字) 等等的文本格式。

  • 本文向大家介绍实例解析angularjs的filter过滤器,包括了实例解析angularjs的filter过滤器的使用技巧和注意事项,需要的朋友参考一下 现在公司用ionic,就是基于angularjs封装了一些api用于webapp,最近用的angularjs的filter确实省了很多代码,现在总结一下! ng比较鸡肋的过滤器,这里就一笔带过吧!鸡汤类常用的filter后面上例子。 lower

  • 问题内容: 我正在使用angularjs和spring mvc作为REST服务提供程序和部分视图提供程序编写一个webapp(我也使用angular-ui-router,以便可以有多个嵌套的部分)。我目前对模板语言没有任何用处,因为我计划按角度进行所有操作,但是我尝试过的每个单一视图解析器都有某种类型的模板语言,与角度冲突,或者使应用程序崩溃和/或填充我的日志有错误。 首先,我尝试使用Intern

  • 问题内容: 我编写角度控制器的风格是这样的(使用控制器名称而不是函数) 我现在需要的是提供我要定义解析部分的路线时: 由于控制器定义为名称,如何解决以下问题? 为了更详细地阐明,我想在解析路由之前从服务器加载一些数据,然后在控制器中使用这些数据。 更新: 更准确地说,我希望每个模块都有其“解析”功能,该功能将在执行具有该控制器的root用户之前被调用。这篇文章中的解决方案(由MiskoHevery

  • 本文向大家介绍AngularJS中的过滤器filter用法完全解析,包括了AngularJS中的过滤器filter用法完全解析的使用技巧和注意事项,需要的朋友参考一下 在AngularJS的世界里,filter提供了一种格式化数据的方法,Angular也提供给我们了很多内建的过滤器,并且建立自定义过滤器也是相当的简单 在HTML的模板绑定{{}}中,我们使用 | 来调用过滤器,比如,我们想让字符串