我对如何从翻译后的字符串生成有效的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
,但实际上并没有链接任何地方。我感觉好像在某处缺少一些步骤,但是我似乎无法弄清楚Angular想要我做些什么来使ui-sref起作用。有什么最佳实践的想法可以使它起作用?
最佳答案
不使用翻译,但这可能有所帮助。我们使用$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);
}
});
关于javascript - 如何结合使用translate和ng-bind-html来生成ui-sref链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35210511/