我对如何从翻译后的字符串生成有效的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/

10-09 23:32