首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Prerender Angular UI模式

Prerender Angular UI模式
EN

Stack Overflow用户
提问于 2016-10-05 03:00:50
回答 1查看 456关注 0票数 2

我正在使用Anuglar UI Bootstrap Modal打开一个与AngularJs的对话框,并且在第一次打开模式时遇到了性能问题。当对话框进入视图时,页面上的一些隐藏元素会出现明显的断断续续和闪烁。所有后续的模式打开时,该对话框显示流畅,没有任何卡顿。

我认为这是由于编译视图的一次性计算开销造成的。有没有办法在我的应用程序的后台预编译模式,这样当用户打开对话框时,它就可以运行了。

我正在使用Angular UI Modal服务,如下所示

代码语言:javascript
复制
$uibModal.open({
    templateUrl:'my-modal.html',
    controller:'MyModalCtrl'
});

我在指令中尝试了类似这样的东西,但我需要一些可以在控制器/对话框中工作的东西。

代码语言:javascript
复制
var directive = $compile("<my-directive></my-directive>");
var instance = directive(scope.$new(true));

我使用的是angular 1.5.8和angular-ui-bootstrap 1.3,这个问题在所有浏览器、台式机和移动设备上都会出现,但在功耗较低的硬件(手机、平板电脑)上最明显。

https://embed.plnkr.co/hDM6GrUh8droo988MOox/

EN

回答 1

Stack Overflow用户

发布于 2016-10-05 03:11:03

使用resolve来确保在打开模式之前数据已经准备就绪。

下面是文档中的一个示例。

代码语言:javascript
复制
var modalInstance = $uibModal.open({
      animation: $ctrl.animationsEnabled,
      ariaLabelledBy: 'modal-title',
      ariaDescribedBy: 'modal-body',
      templateUrl: 'myModalContent.html',
      controller: 'ModalInstanceCtrl',
      controllerAs: '$ctrl',
      size: size,
      resolve: {
        items: function () {
          return $ctrl.items;
        }
      }
    });

此外,在模式上不要使用{{}} (如果您正在使用它),而使用ng-bind。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39859846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档