0

我们有一个 AngularJS 应用程序(不是 SPA)。我们面临这个问题,即未编译模板的某些部分会短暂显示,因此我将 ngCloak 指令应用于应用程序。

我不确定该指令到底应该在哪里使用 - 每个单个、小元素或大部分(或其他地方)。我目前正在做的是通过 Chrome 开发工具将连接限制到非常慢的速度,然后检查模板的哪些部分以原始状态显示。但我觉得这不是一个非常确定的方法。

所以我想知道在哪里使用ngCloak。

谢谢你。

4

3 回答 3

2

将 ngCloak 应用于每个小元素肯定是错误的方法。

您通常希望将其应用到较大的部分,或者应用到使用 Angular 的页面的整个部分。目标是在 Angular 准备好使用之前隐藏页面的这些部分。

这是官方文档所说的:

该指令可以应用于<body>元素,但首选用法是将多个 ngCloak 指令应用于页面的一小部分,以允许渐进式呈现浏览器视图。

如果您不希望您的用户看到空白区域,您可以显示加载动画,直到 Angular 完成加载。你可以通过给元素一个ng-show="false"指令来做到这一点:

<img src='/images/loading.gif' ng-show='false' />
于 2015-12-21T12:44:39.663 回答
1

请将以下代码添加到 index.html 的 head 部分

<style>
    [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
        display: none !important;
    }
</style>

您可以将相同的代码添加到您的 css 文件中

谢谢

于 2015-12-21T12:44:38.353 回答
0

如果没有 [ng-cloak],当您在 angularJs 渲染之前运行应用程序时,您会看到一些像“{{myngModel}} 之类的角度代码,当您将 [ng-cloak] 放入项目中运行时,您没有看到那些代码直到渲染完成。

[ng\:cloak],
[ng-cloak],
[data-ng-cloak],
[x-ng-cloak],
.ng-cloak,
.x-ng-cloak {
  display: none !important;
}
<!DOCTYPE html>
<html ng-app="app">

<head>
  <title>app</title>
</head>

<body ng-cloak>
</body>

</html>

于 2015-12-21T12:47:58.153 回答