作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我单击 my-dir 时,折叠的元素不会展开。我在 css 中为 .btn
类设置了大小,以确保实际单击事件。
//index.html
<body ng-controller="ctrl">
<p>{{hello}}</p>
<div class="btn" my-dir></div>
</body>
//app.js
var app = angular.module('app', ['ui.bootstrap']);
app.controller('ctrl', function($scope){
$scope.hello = 'hello';
});
app.directive('myDir', function() {
return {
restrict: 'A',
replace: false,
templateUrl: './tmpl.html',
link: function (scope, element, attrs) {
scope.isCollapsed = true;
element.bind('click', function (e) {
scope.isCollapsed = !scope.isCollapsed;
})
}
};
});
//tmpl.html
<div class="dir-box">
<div uib-collapse="isCollapsed">
<p>Hello World!</p>
<p>Nice to meet You!</p>
<p>: )</p>
</div>
</div>
为什么 uibCollapse 在这种情况下不起作用?
有什么想法吗?
最佳答案
您需要修复两件事:
1.更改click
绑定(bind)到ng-click
。默认情况下,Angular 不运行其 $digest
循环 jquery 事件。您可以通过添加 $scope.$apply()
来解决此问题或$timeout
在您的代码中,但我建议使用 ng-click
作为一个更合适的方式。
<div class="btn" my-dir ng-click="isCollapsed = !isCollapsed"></div>
根据您的原始代码,我应该将其添加到您的指令模板中,但是您的 dir-box
位置不与蓝色区域重叠...
2.使用overflow:hidden
上uib-collapse
元素。
<div uib-collapse="isCollapsed" style="overflow: hidden;">
当父高度为0时,内容仍然显示
关于javascript - 嵌套在指令元素中的 uibCollapse 将不起作用,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38236162/
当我单击 my-dir 时,折叠的元素不会展开。我在 css 中为 .btn 类设置了大小,以确保实际单击事件。 //index.html {{hello}} //app.js
我是一名优秀的程序员,十分优秀!