我对如何从翻译后的字符串生成有效的ui-sref
链接感到有点困惑。
我正在使用棱角1.4.9 角度转换2.9.0
这是相关代码
<div ng-bind-html="$scope.getTranslatedText(someObject)"></div>
controller {
function(value) {
this.$translate.isPostCompilingEnabled(); // Returns true
return this.$translate.instant("taskNames."+value.parameters['messageId'], value.parameters);
}
}
My translation has the following string.
taskInstructions{
someMessageId: "Here is some text <a ui-sref=\"goSomewhere\">Some more text</a>"
}
我的翻译按预期返回文本,如果我没有ng-bind-html
,那么ui-sref就在那里,但是一旦我添加了ng-bind-html
,ui-sref就会消失。我已经尝试过编译,但这似乎不起作用,虽然我不确定我是否正确使用它。
我在翻译的输出上尝试了$sce.trustAsHtml
,并且在html输出中显示了ui-sref
,但实际上并没有链接到任何地方。我觉得我在某个地方缺少一些步骤,但我似乎无法弄清楚我想做什么让ui-sref起作用。
有关最佳实践的建议是什么?
答案 0 :(得分:0)
不使用翻译,但也许这会有所帮助。我们使用$sce
和$state
:
<强> HTML 强>
<section class="adb-layout-row" ng-repeat="post in vm.posts">
<div class="adb-layout-default">
<h5><a ng-click="vm.open(post)">{{ post.title }}</a></h5>
<div ng-bind-html="post.html"></div>
</div>
</section>
<强> JS 强>
$q.when(getPosts()).then(function(data) {
vm.posts = data.posts.map(function(post){
return {
title: post.title,
html: $sce.trustAsHtml(post.description),
url: post.url
};
});
});
angular.extend(vm, {
open: function(post) {
$state.go(post.url);
}
});