如何使用 ng-switch 加载内容

how does content load with ng-switch

我们的团队正在 ServiceNow 中开发一个应用程序,并创建了一个嵌入了其他几个小部件的大小部件。每个嵌入式小部件都包含在它自己的选项卡中,我们使用 ng-switch 在每个小部件之间切换。 ServiceNow 有一个名为 recordWatch 的客户端 API,如果条目已 added/deleted 在相应的后端 table 中,它将更新页面上的内容而无需重新加载。我们 运行 遇到了一个问题,即内容只有在预先选择了正确的选项卡时才会更新。

例如,我们有一个工作历史标签。如果我们已经在“工作历史记录”选项卡上并在后端添加新条目,则该选项卡上的内容将自动更新而无需重新加载。但是,如果我们做同样的事情并且打开了另一个选项卡,那么我们将需要重新加载才能看到这些更新。

我们想确认 ng-switch 仅在单击相关选项卡时呈现,而不是一次加载所有内容并仅在单击相关选项卡之前隐藏。如果前者是正确的,我们是否需要放弃 ng-switch 以使我们的 recordWatch 正常工作?是否有其他方法可以满足我们的要求?谢谢!

ngHide/ngShow 和 ngIf/ngSwitch 之间有一大区别。 ngHide 实际上只会设置 css display:none,而 ngIf/ngSwitch 会从 DOM 中删除 HTML 并在满足条件时重新添加它。

因此,非活动 ngSwitch 中的所有小部件都不是 运行。

您可以很容易地从 ngSwitch 到 ngHide 重写您的 Widget。你应该先试试。

最好的做法是创建一个服务,它是一个单例并且可以导入到所有 directives/widgets。该服务应采用 recordWatch 逻辑并保存指令的模型。这样,如果您将 ngSwitch 切换到新指令,它将使用来自 运行 服务的最新数据。 https://fdietz.github.io/recipes-with-angular-js/controllers/sharing-code-between-controllers-using-services.html