在select2实例初始化的时候,加入一个事件监听器,当ng-show改变时,调用select2的resize方法来更新布局。具体实现代码如下:
HTML代码:
JavaScript代码: app.directive('uiSelect2', function() { return { restrict: 'A', link: function(scope, element) { var select = element.select2({ minimumResultsForSearch: -1 //disable search box }); scope.$watch('showSelect', function(newValue, oldValue) { if (newValue !== oldValue) { select.select2('resize', true); } }); } }; });