2017-07-31 14 views
0

各繰り返し項目に入力ボックス付きのng-repeatがあります。私は入力にオートフォーカスを設定しました。条件に基づいてtrueを返すHTML属性

<input type="text" autofocus /> 

したがって、すべての項目にオートフォーカスが適用されます。しかし、最初の入力ボックスの代わりに最後の入力ボックスが自動でフォーカスされているiOSにはバグがあります。

私はそれはのように条件に基づいてtrueを返すように設定する必要があり

<input autofocus="{{$first ? 'true' : 'false' }}" > 

任意のアイデアはどの角度でこれを実現するには?

+0

'$ first? 'true': 'false'は '$ first 'に短縮できます。 '' true''と '' false''の文字列表現を使用しないでください。 – msanford

答えて

0

要素を集中するカスタムディレクティブを使用

指令

app.directive('autofocus', ['$timeout', function($timeout) { 
    return { 
    restrict: 'A', 
    link : function(scope, element,attrs) { 
     $timeout(function() { 
     if(attrs.autofocus==='true'){ 
     element[0].focus(); 
     } 
     }); 
    } 
    } 
}]); 

コントローラ

app.controller('MainCtrl', function($scope) { 
    $scope.names = ['first','second','third','fourth','fifth']; 
}); 

HTML

<div ng-repeat="name in names"> 
    <input type="text" autofocus="{{$index==0}}" ng-model="name" /> 
    </div> 

デモプランカーlink

+0

有効ではないようです。インデックス番号を変更してみてください。 – Nima

+0

私の間違いは...プラカードを更新しました。チェックしてください。 – himanshu

関連する問題