我在指令中有一个隐藏组件,但是当页面加载时,隐藏元素会在动画期间出现,只有当组件的模型设置为可见时才会触发。
在此示例中,我将组件永久设置为ng-hide="true",当页面加载时,它仍会显示半秒。在我的实际程序中,指令要复杂得多,所以我将模板放在它自己的文件中,如果我只是把它放在一个字符串中,问题就不会出现。
我尝试将style="display:none"添加到模板的内容中,但后来它不会对模型更改做出反应。
<html ng-app="myApp">
<head>
<style>
.overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: black;
transition: all linear 0.5s;
}
.overlay.ng-hide {
opacity: 0;
}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.18/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-beta.18/angular-animate.min.js"></script>
<script>
angular.module("myApp", ['ngAnimate'])
.directive("overlay", function() {
return {
replace: true,
templateUrl: "overlay.html"
};
});
</script>
</head>
<body>
<overlay></overlay>
</body>
</html>
覆盖.html:
<div class="overlay" ng-hide="true"></div>
Plunker:http ://plnkr.co/edit/tYLkGwPJtFPxH2ES6qIe?p=preview