2016-11-25 6 views
0

私のアプリケーションでは、多くのページでフォーム検証を使用しています。無効な入力要素に焦点を当てたい場合、どの要素でもtrueまたはfalseをディレクティブで設定せずに使用する方法。 controller.jsでng.modelを使って入力要素にフォーカスを合わせる方法[最初はありません]

<input type="text" ng-model="username" focus-me="isError"/> 

:代わりに上記のコードのように使用する

if(scope.username == "") 
{ 
    scope.isError = true; 
} 

、NG-モデルを使用して集中させる方法はありますか?

答えて

0

あなたがフォーカスを設定するには、あなたのコントローラ内でメソッドをトリガするために、おそらくこのような何かを空白NG-のメッセージを使用することができます。

<form name="vm.foo"> 
    <input type="text" ng-model="username" id="fooUsername" /> 

    <ul 
    ng-messages="vm.foo.fooUsername.$error" 
    ng-if="vm.validFormItem(vm.foo.fooUsername)"> 
    <li ng-messages-include="some/validation/partial.html"> 
    </ul> 
</form> 

次に、あなたのコントローラ内部の方法:

validFormItem(item) { 
    const returnValue = false; 
    // Do whatever checking you need in here to validate the form item 
    // to change returnValue; 

    // If it's false (not valid) then focus your form item here; 
    if (!returnValue) { 
    item.focus(); 
    } 

    return returnValue; 
} 

私はこれをテストしていない。

関連する問題