テキストフィールドまたはテキストエリアにフォーカスを設定する簡単な方法を探しています。Jquery 構文と Ember 構文を混在させたくない...そして、フォーカスを設定したいテキストフィールドまたはテキストエリアごとに個別のビューを作成したくない。
助言がありますか ?
私の textArea フィールドは単純です:
{{view Ember.TextArea valueBinding="body" placeholder="body"}}
ありがとうマーク
テキストフィールドまたはテキストエリアにフォーカスを設定する簡単な方法を探しています。Jquery 構文と Ember 構文を混在させたくない...そして、フォーカスを設定したいテキストフィールドまたはテキストエリアごとに個別のビューを作成したくない。
助言がありますか ?
私の textArea フィールドは単純です:
{{view Ember.TextArea valueBinding="body" placeholder="body"}}
ありがとうマーク
新しい Ember CLIautofocus="autofocus"
では、テンプレート *.hbs を使用するだけでこれを取得できます
{{input value=text type="text" name="text" placeholder="Enter text" autofocus="autofocus"}}
にフォーカスを設定する最も簡単な方法TextArea
は次のとおりです。
App.FocusTextArea = Ember.TextArea.extend({
didInsertElement: function() {
this._super(...arguments);
this.$().focus();
}
});
そして、そのようなビューが必要なときはいつでも、次のように使用できます。
{{view App.FocusTextArea valueBinding="body" placeholder="body"}}
また、フォーカスを設定したいテキストフィールドまたはテキストエリアごとに個別のビューを作成しないことを好みます。
新しいビューを作成するたびTextArea
に拡張するカスタムビューを作成することで、目的の動作でカスタム ビューを再利用できます。Ember.TextArea
それが役に立てば幸い。
この小さなパッケージはさらに一歩進んで、それ以上のコーディングやサブクラス化を行わずに、テンプレートで直接、もう少しエレガントにこれを行います。
<body>
<!-- all the libraries -->
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.3.0/handlebars.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/ember.js/1.2.0/ember.min.js"></script>
<script src="http://rawgithub.com/AndreasPizsa/ember-autofocus/master/dist/ember-autofocus.min.js"></script>
<!-- your template -->
<script type="text/x-handlebars">
Hello, world! {{ input }}
:
: more elements here
:
{{ autofocus }} {# <<<<< does the magic #}
</script>
<!-- your app -->
<script>
Ember.Application.create();
</script>
</body>
https://github.com/AndreasPizsa/ember-autofocus
またはから取得できますbower install ember-autofocus
。
フィールドcomponent
をラップするを作成し、フックを使用して内部にフォーカスすることができます。input
didInsertElement
input
テンプレートでは:
// template.hbs
{{#focus-input}}
{{input type="text"}}
{{/focus-input}}
あなたのコンポーネント:
// components/focus-input.js
import Ember from 'ember';
export default Ember.Component.extend({
didInsertElement () {
this.$('input').focus();
}
});