【发布时间】:2017-09-18 00:17:59
【问题描述】:
我最初在 iframe 中有一些 href,但是,我使用 html div 中的 ng-bind-html 将 html 绑定到 AngularJS。例如
<div ng-bind-html="foo"></div>
其中 foo 是 HTML 内容
html 来自受信任的来源,我知道 $sce.trustAsHtml(foo) 函数,我在控制器类中使用它,例如
$scope.bar = function () {
if ($scope.foo == null)
getFoo(Id).then(function (fooData) {
$scope.foo = $sce.trustAsHtml(foodata);
})['catch'](function (reason) {
//do something
});
};
问题在于,在 foo html 内容中,我有一些不再有效的链接,例如
<a href="#MyLink">MyLink</a>
我也有相应的html标签,例如
<a name="MyLink"><a>
我确实注意到,如果我编辑 #MyLink 并为其提供完整的 URL,例如 http://MyWebsite/MyPage#MyLink 它可以工作。事实上#/mypage#MyLink 就足够了。但是,遗憾的是,我不可能/合理地提供 foo html 的完整 URL,因为这是由不同的应用程序呈现的。如果我删除 ng-bind-html 属性,这些链接都可以正常工作,但我需要它。此外,如果我剪切并粘贴 html,浏览器将呈现到新页面中,链接将起作用。这让我有点发疯,如果有人有任何建议可以为我指明正确的方向,我将不胜感激。
我在读到,为了让 ng-functions 工作,我必须使用 $complile 服务,但是,这些只是标准的 href,所以我很确定我不需要这样做吗?我对 AngularJS 还是比较陌生,所以我提前为我的天真道歉......
【问题讨论】:
-
这里有错字
<a name="MyLink"><a>
标签: javascript html angularjs