如何使用ember.js制作textarea autogrow?

pen*_*sky 5 autogrow ember.js

我怎样才能使TextArea 自动增长与ember.js插件的工作?它似乎没有用Ember.TextArea.

我试过这个(coffeescript):

  App.TextField = Ember.TextArea.extend
    didInsertElement: ->
      opts =
        animate: false
        cloneClass: 'faketextarea'
      @$().autogrow(opts)
Run Code Online (Sandbox Code Playgroud)

Cra*_*den 7

Ember获取this.$()视图的方式似乎存在问题,该视图与自动增长插件不能很好地协同工作,导致自动增长无法正确监听事件TextArea.使用elementId视图显式创建选择器允许您的示例工作.

我正在使用Ember 1.0.0-PRE.4

示例:http://jsbin.com/adedag/8/edit

App.TextField = Ember.TextArea.extend({
  didInsertElement: function() {
    opts = {
      animate: false,
      cloneClass: 'faketextarea'
    }
    $('#'+this.get('elementId')).autogrow(opts);
  }
});
Run Code Online (Sandbox Code Playgroud)


gen*_*abs 6

如果您正在使用Bower,请考虑以下替代方案:http://www.jacklmoore.com/autosize/

"dependencies": {
    "jquery": "~2.0",
    "ember": "1.2.0-beta.4",
    "ember-data-shim": "v1.0.0-beta.3",
    "handlebars": "1.1.2",
    "jquery-autosize":""
},
Run Code Online (Sandbox Code Playgroud)

然后

App.AutosizeTextArea = Ember.TextArea.extend({
didInsertElement: function() {
    $('#'+this.get('elementId')).autosize();
}
Run Code Online (Sandbox Code Playgroud)

});

{{view App.AutosizeTextArea value=notes}}
Run Code Online (Sandbox Code Playgroud)