提问人:gib65 提问时间:10/10/2023 更新时间:10/10/2023 访问量:17
为什么我的链接在注入 Javascript 时不起作用?
Why does my link not work when injected with Javascript?
问:
我正在开发一个 AngularJS 应用程序,我在 HTML 中有这一段:
<p id="CEBM_HELP_DETAILS_CHANGE_POINTS_BLURB" class="section-paragraph justify-paragraph margin-bottom-30">
This is my paragraph (see <a href="" ng-click="followLink('best-fit-line', 'charts')">Best Fit Line</a>). This is more of my paragraph.
</p>
该段落呈现良好,链接正常工作。
但是,现在我需要将该段落移动到我们的 resx 文件中,以便将其翻译成其他语言。所以现在它在这里:
<data name="CEBM_HELP_DETAILS_CHANGE_POINTS_BLURB" xml:space="preserve">
<value>
This is my paragraph (see <a href="" ng-click="followLink('best-fit-line', 'charts')">Best Fit Line</a>). This is more of my paragraph.
</value>
</data>
通常,我们会获取 resx 文件的内容,并通过插值将其注入 DOM 中,并通过“平移”管道将其输送,如下所示:
{{ 'CEBM_HELP_DETAILS_CHANGE_POINTS_BLURB' | 翻译 }}
但在这种情况下,由于段落包含 HTML 元素(即 ),它需要正确呈现这些元素,而像这样注入它不会这样做。我最终在页面上看到。<a href="" ng-click="followLink('best-fit-line', 'charts')">Best Fit Line</a>
<a>...</a>
因此,我尝试这样做:
function injectLanguageItem(itemKey) {
var text = $filter('translate')(itemKey);
var container = document.querySelector('#' + itemKey);
container.innerHTML += text;
}
injectLanguageItem('CEBM_HELP_DETAILS_CHANGE_POINTS_BLURB');
就渲染 HTML 元素而言,这有效,但现在当我单击超链接时,它不会调用 followLink() 函数;相反,它会刷新页面。
奇怪的是,当我检查它时,DOM 在每种情况下看起来都完全相同:
这是我将段落直接放入 HTML 时的样子,也是我从 resx 文件注入它时的样子。
有谁知道为什么我的链接在我注入时不起作用?这与 Angular 在注入链接时没有机会处理链接有什么关系吗?有没有另一种方法可以解决我没有想到的这个问题?ng-click
答: 暂无答案
评论