Ng-show中包含的指令表现非常错误,否则它会起作用

时间:2013-05-07 04:56:40

标签: jquery angularjs angularjs-directive

我放了一个Fiddle here来展示我的错误。

这是一个基于colResizable插件的多重滑块。我遇到的问题是我需要使用ng-show来显示它,如果最初没有显示则会显示错误。

$scope.show = false; //initially set to false in controller


<div class="row" ng-show="show">
    <multirangeslider values="ranges" variances="variances" class="multislider-container row"></multirangeslider>
...

请参阅fiddle(最初无效)。当您将显示值更改为true时,它可以正常工作,而且没有意义。为什么?我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

jQuery无法计算隐藏元素的宽度(或高度)。 colResizable插件使用jQuery的outerWidth函数,并从中返回零。有很多方法可以解决这个问题 - 最简单的方法是使用visible样式(你可以写一个ngVisible指令):http://jsfiddle.net/5u6Ls/5/

或者,你可以做一些疯狂的事情,比如当你的元素可见时尝试和监视,然后应用colResizable插件,或者在SO上也有一些解决方法: