AngularJS拦截动态内容的链接

时间:2013-06-10 06:04:15

标签: angularjs angularjs-directive

我知道这可能是一种非角色的做事方式,但我不能想到一个好的方法,而不必重写很多内容的布局。这也是我的第一个有角度的应用程序,很高兴学习这个怪癖。

基本上,我正在编写一个完全不同的网站的移动版本,这不能证明重写网站是合理的,因此它是动态的。因此,我们决定编写一个API,以HTML格式返回每个页面中的内容。

我有一个用Angular编写的工作概念证明,它可以执行$ http请求来获取数据,并且完美无缺。但是,在每个页面中都可能有一个或多个链接,这些链接需要进行解析和修改,以便页面调用API而不是直接在那里浏览。

例如,about us链接可以从API返回以下模型(通过$ http.get()。success():

<a href="http://localhost/about-us/">About Us</a>

页面没有ID,我们正在使用没有页面ID的框架。

但我需要将其转换为,所以Angular通过ajax get了解页面的负载。

<a href="#" ng-click="loadPage('about-us')">About Us</a>

有没有办法做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果你希望它以角度方式工作,那么你需要将html转换为角度模板。您可以使用$ compile服务执行此操作。

我有一个问题,你可以查看结果here

它只是使用一些正则表达式来查找href,然后用ng-click替换它们。然后,它使用编译服务将其转换为角度元素,然后将其添加到输出中。

这不是最优雅的解决方案,但它可以解决问题。可能在这种情况下我会使用jQuery $('a')。click()因为没有真正的价值在角度来做。