2

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

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

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

例如,关于我们的链接可能会从 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>

有没有办法做到这一点?

谢谢 !

4

1 回答 1

0

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

我对此有所了解,您可以在此处查看结果。

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

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

于 2013-06-11T18:12:56.807 回答