在angularJS中调整文本区域的大小(在uib-tab内部)

时间:2018-08-09 12:20:49

标签: angularjs angularjs-directive textarea

您好,我在AngularJS中使用https://hassantariqblog.wordpress.com/2016/07/27/angularjs-textarea-auto-resize-directive/来根据输入来调整文本区域的大小。我正在使用如下模板(description.tpl.html):

 <textarea class="form-control" auto-resize placeholder="Please enter description here..." style="resize: none;min-height:100px;" ng-model="description" autofocus></textarea>  

然后在2个地方显示文本区域。但是,当我在如下所示的选项卡中使用textarea时,不会更新它的大小。但是,当我开始输入文本区域时,它会更新大小。

 <uib-tab heading= DESCRIPTION >                      
     <div ng-include="'description.tpl.html'"></div>
 </uib-tab>

因此,我尝试添加此代码,当选择选项卡时,如何调用该指令?

element.css({ 'height': 'auto', 'overflow-y': 'hidden' });
element.css('height', element[0].scrollHeight + 'px');

谢谢!

1 个答案:

答案 0 :(得分:0)

我添加了一个布尔作用域变量,并在选择选项卡时将其设置为true。在指令中添加了以下代码:

     scope.$watch('descriptionTabSelected', function(descriptionTabSelected){
                    if(descriptionTabSelected){
                        element.css({ 'height': 'auto', 'overflow-y': 'hidden' });
                        $timeout(function () {
                            element.css('height', element[0].scrollHeight + 'px');
                        }, 100);
                    }
                });