在渲染之前等待指令内的promise

时间:2017-03-31 05:48:33

标签: angularjs

我有这样的指示:

'use strict';

angular.module('rowe.desktop').directive('bottomBar', function ($translate, sessionService) {
  return {
    templateUrl: 'modules/desktop/shared/directives/views/_bottomBar.html',
    restrict: 'E',
    replace: true,
    scope: {},
    link: function (scope) {
      var nowDate = new Date();
     $translate('COPYRIGHT').then((translation)=>{
       scope.copyright = translation;
     })
    }
  };
})

翻译服务实际上返回一个承诺,我需要等待该承诺在执行渲染之前得到解决。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我在模板的根元素上使用ngIf来防止根元素呈现,除非ngIf条件为真。

如果您的模板如下所示:

<div>This is the template of the directive</div>

您最初可以添加一个false的ngIf,因此不会渲染div。

<div ng-if="allowRendering">This is the template of the directive</div>

在您的指令中,只要您想要呈现模板,就可以将allowRendering设置为true。

我在JSFiddle中创建了一个示例:JSFiddle example