1

このサンプル コードhttp://plnkr.co/l6kv7xでは、フォーカスをテキスト入力に移動し、ユーザーが編集ボタンをクリックしたときにコンテンツを選択したいのですが、AngularJS でそれを行う方法がわかりませんでした。

4

2 に答える 2

3

質問はAngularJS - チェックボックスがクリックされたときに入力要素にフォーカスするに非常に似ているため、非常によく似た解決策があります: 属性としてfocus取るディレクティブ:editing

app.directive('focus', function() {
    return function(scope, element, attrs) {
        scope.$watch(attrs.focus, function(newValue) {
            newValue && element[0].focus()
        })
    }
});

@Josh が既に指摘したように、element[0] を使用して生の DOM 要素にアクセスすることにより、ネイティブ DOM focus() メソッドを使用できます。要素自体は、ラップされた jqLit​​e (またはロードされている場合は jQuery) 要素です。

HTML:

<input ng-show="editing" type="text" ng-model="text" value="{{text}}"
  focus="editing">

フィドル

于 2013-01-08T02:44:16.583 に答える
1

AngularJSを使用してそれを行う直接的な方法はありません。DOM操作にはJavaScriptまたはjQueryなどのJavaScriptライブラリを使用する必要がありますが、コントローラー内でDOM操作を実行することはお勧めしません。あなたがしたいのは、ディレクティブを使用することです。

于 2013-01-06T22:59:58.113 に答える