AngularJS& jQuery:将textarea分成多个textareas

时间:2016-02-22 18:04:28

标签: jquery html css angularjs

对于我正在开发的项目,我们希望创建一个商品模块,用户可以根据动态值生成商品。该模块具有html预览版,可以作为pdf版本下载,并发送给客户。

生成包含所有数据的html页面。这是在视图中使用ng-model完成的。接下来,我们使用jQuery模拟多个页面,检查每个元素是否在页面之外(每个页面的最小和最大高度为29,7cm)。此功能已经修复,因此我们知道这有效。

问题在于,当用户输入textarea时,我们想检查textarea是否在页面之外流动,如果是,我们想要切断发生溢出的textarea并使用jQuery创建一个新的textarea,并使用ng-model填充剩余的字符。

我们已经考虑将所有角色分成一个数组,但到目前为止没有运气将其合并到ng-model中。 First approachSecond approach

所以问题是,是否可以检查溢出是否发生,如果是,创建一个具有相同ng-model的新textarea?任何帮助是极大的赞赏。

1 个答案:

答案 0 :(得分:1)

是的,有可能,我已经创建了一个基本示例,如何跟踪溢出并添加新的textarea。

检查小提琴

<强> http://jsfiddle.net/88TzF/559/

app = angular.module('myApp', []);


app.directive("scrolls", function ($window) {
return {
  restrict : 'C',
  link : function(scope, element, attrs) {

  console.log(element);
    angular.element(element).bind("scroll", function() {
    console.log(this.scrollTop);
    var newarea = angular.element(document.getElementById('newarea'));
         if(this.scrollTop > 0 )
         {

          var appendTextbox= '<textarea width="200px" class="scrolls"  style="height:130px;overflow-y:scroll "></textarea>';
           newarea.append(appendTextbox);
           var childrens = newarea.children();
           var  textList = angular.element(document.getElementsByClassName('scrolls'));

           var tofocus = textList[textList.length-1];
           console.dir(textList.length);
           angular.element(tofocus).attr('autofocus','true');

         }
    });
    }
}; });