【问题标题】:How to display html after all angularjs processing如何在所有 angularjs 处理后显示 html
【发布时间】:2018-03-06 12:10:47
【问题描述】:

我正在使用 angularjs,并且我有一个表,其中包含使用 ng-repeat 动态创建的行和列。每个单元格都有一个包含 ng-include 的指令。在处理单元格的内容时,会终止 ng-repeat,并且表格会暂时显示为空单元格。我想阻止页面视图,直到所有角度处理都完成。有可能吗?

我加载行和列来加载一个表,例如:

<table>
   <tr ng-repeat="row in rows">
      <td ng-repeat="col in cols">
         <my-directive row="row" col="col" tamplate-cell-url="{{templateCellUrl}}">
         </my-directive>
      </td>
   </tr>
</table>

我的指令:

angular.module('app').directive('myDirective', function () {
  return {
    restrict: 'E',
    scope: {
      row: '=',
      col: '=',
      templateCellUrl: '@'
    },
    replace: true,
    link: function (scope, element, attrs, ctrl) {
      scope.url = function () {
        return scope.templateCellUrl || 'cell-default.html'
      }
    },
    template: '<div ng-include="url()"></div>'
  }
})

【问题讨论】:

  • 太简短了,但听起来像 ng-cloak (css) 或 resolve (angular.config)
  • 你要加载多少个 $scope 变量?
  • @RakeshBurbure,我编辑了我的问题并包含了代码的详细信息...

标签: angularjs angularjs-directive


【解决方案1】:

是的,有一个简单的解决方案。为此使用ng-showng-hide

<div ng-hide="variable == undefined">
//Your HTML Code
</div>

在上面的代码示例中,如果 $scope.variable 未定义(意味着它尚未初始化),它将隐藏您的 html 内容。如果有东西被分配给它,它会向你显示 DOM 内容。

对于多个变量的使用和条件。

【讨论】:

  • Rakesh,我想过,但我不知道所有 ng-include 何时结束为该变量赋值
【解决方案2】:

听起来像是 ng-cloak 指令的工作。

ngCloak 指令用于防止 AngularJS html 模板 浏览器以原始(未编译)的形式简要显示 应用程序加载时的表单。使用该指令来避免 html模板显示引起的不良闪烁效果。

看这里https://docs.angularjs.org/api/ng/directive/ngCloak

所以在你的单元格指令中你可以这样做:

<div ng-cloak>
      <ng-include src="something.html'"></ng-include>           
</div>

【讨论】:

  • 即使认为 url 是对问题的回答,在 url 中添加一些描述总是一个好习惯。
  • Ng-cloak 解决如果我不想在分配值之前显示空的“{{}}”angularjs 键。就我而言,它不起作用,因为它不同。关键是 ng-repeat 在完全加载指令和每个单元格的 ng-include 之前终止。谢了!
  • 所以在内部(单元格)指令中只做:&lt;div ng-cloak&gt; &lt;ng-include src="'/Content/app/admin/partials/grid-content-base.html'"&gt;&lt;/ng-include&gt; &lt;/div&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-15
  • 2017-05-11
  • 2016-09-18
相关资源
最近更新 更多