如何定义$compile服务何时在angular中完全完成编译
How to define when $compile service completely finish compiling in angular
假设我有一个在$scope模板中继承的popup指令,它是popup应该显示的popup内容的字符串模板。
scope: {
template: '=popInfo'//<div another directive></div>
}
这个模板字符串本身可能包含另一个指令,所以我使用$compile服务来编译它
$el.find('content-container').append($compile($scope.template)($scope));
$scope.makeVisible();//after i've compiled i'm making it visible
它有效,但存在看起来像眨眼的副作用。首先是显示弹出式容器,然后是显示内容。
http://plnkr.co/edit/FehvteTvZ92e4MFZNaHj?p=preview-这是一个例子。似乎只使用templateUrl重新部署了它。
有人能帮我避免这种行为吗?
您需要等待一个摘要周期。例如,使元素在$timeout
调用中可见:
$el.find('content-container').append($compile($scope.template)($scope));
$timeout($scope.makeVisible);
// or $timeout(function() { $scope.makeVisible(); });
相关文章:
- AngularJS:带有HTML和angular表达式的指令;编译”;具有外部范围的内容
- 如何在编译时更新yeoman angular中的html路径
- Angular JS$编译服务导致$watch内存泄漏
- 超链接;编译angular指令内的模板后无法工作
- 检测在angular中传递给$compile的字符串的最佳方法是可编译的
- 如何定义$compile服务何时在angular中完全完成编译
- 在 Angular 中,如何从指令访问我编译的模板
- Angular 指令内部 HTML 重新编译,动态创建绑定属性
- 为什么这个 Angular 指令没有在 Jasmine 单元测试中编译
- Angular 在使用 jq 追加方法时是否编译指令
- Angular - 编译指令后无法访问控制器方法
- 如何将 Angular 模板编译为文本
- 无法在单元测试中编译从 Angular 1.3.0 开始的包含指令
- 在 Angular 中,当我收到一些新数据时,如何强制模板重新编译
- 如何在angular外部加载的页面上手动编译angular指令
- 在没有指令的情况下将模板编译成angular字符串
- angular templateUrl在动态编译中扰乱了链接顺序
- 如何编译angular指令中的新元素.attr()
- 在Angular中编译HTML字符串模板
- 为什么typescript要用angular编译掉基控制器的局部变量?