2017-03-08 6 views
0

必須ラジオボタンを作るためにはどうすればformlyフォームのドキュメントを見、だけでなく、SO通じが、以下が可能である場合、私は判断できませんしてきました。誰かが解決策に遭遇しましたか?AngularJS Formlyフォーム -

は問題:どのように1が必要とされることがFormlyフォームのラジオボタンの質問を設定していますか?

背景:私は、フロントエンドに質問を形成formly返却されたAPIを持っています。たとえば、私は以下を返すかもしれません: enter image description here

これらのフィールドは両方ともDBに「必須」です。 「あなたのブログのURLは何ですか?」という答えを入力しなければ、「フィールドは必須です」というメッセージが表示されます。メッセージ。驚くばかり。

しかし、私はそのラジオボタンに必要事項を記入していない場合、私はそのようなメッセージが出ていません。フォームは「確認」をクリックするとハングアップします。

どのように 'このフォームは必須ですか?'ラジオの質問のメッセージ?繰り返しますが、これらの質問はハードコードされていないので、HTMLにオプションを追加するのと同じくらい単純ではありません。


はい、私はrequired:trueを使用してみました。選択して素晴らしい作品が、これをbuttons.Tryingラジオが動作していないよう:

formlyConfigProvider.setType([{ 
name: 'radio', 
templateUrl: "radioTemplate.html", 
wrapper: ['simpleLabel', 'errorMessage'], 
defaultOptions: { 
    noFormControl: false 
}, 
apiCheck: function apiCheck(check) { 
    return { 
    templateOptions: { 
     required: true, 
     options: check.arrayOf(check.object), 
     labelProp: check.string.optional, 
     valueProp: check.string.optional 
    } 
    }; 
}, 
controller: ['$scope', 'HelpersService', function($scope, HelpersService) { 
    if (['Internet Explorer', 'MSIE', 'Unknown', 'Edge'].indexOf(HelpersService.getBrowserName().name) > -1) { 
    $scope.ieClass = 'ie'; 
    } 
}] 

}]);

私は次のエラーを取得する:

enter image description here

これは、このラジオボタンを持つオプションではありません信じるように私を導きました。ただし、このエラーを間違って解釈している場合は、お知らせください。 :)

誰かがコードサンプルをリクエストしました。コードベースの多くのコードは独自のものです。しかし、私はDBから戻ってきた質問に使用するテンプレートを以下に含めました。私が本当に不思議なのは、以前誰かがこの問題に遭遇したかどうか、また文書化された設定オプションがあるか、それとも非常に簡単なハックがあるかということです。それ以外の場合は、コントローラの機能でこれを検出する方法を検討します。 DBから戻ってくる

****ないすべての質問が必要になります!

<div ng-if="ctrl.questions"> 
 
    <form name="ctrl.form" ng-submit="ctrl.submit(ctrl.questions.model)" novalidate> 
 
     <formly-form form="ctrl.form" class="input" fields="ctrl.questions" model="ctrl.questions.model" > 
 
      <input type="submit" class="btn" id="submit" value="Confirm" /> 
 
     </formly-form> 
 
    </form> 
 
</div>

答えて

0

ラジオボタンでrequiredを追加します。

<input type="radio" name="myRadio" required ng-model="myModel" value="myValue"/> 

を次にあなたがラジオが選択されているかどうかを確認するために、NG-無効を使用することができます。

<input type="button" ng-click="action()" value="Next" ng-disabled="myform.myRadio.$invalid" /> 
+0

返信いただきありがとうございますが、フォームはハードコードされていません。むしろ、DBから動的に作成されます。 –

+0

フォームを制御できないため、jsパーツで手動で検証し、メッセージをオブジェクトに注入することができます。 –

0

ng-requiredを使用してchを検証する真templateOptionsに:簡単にこの

<div ng-app="app" ng-controller="ctrl"> 
    <form name="myForm" ng-submit="submit()" > 
     <input type="radio" ng-model="roommate" value="roommate" ng-required="!roommate"> roommate <br/> 
     <button type="submit">Submit</button> 
     </form> 
</div> 

Demo

+0

返信いただきありがとうございますが、フォームはハードコードされていません。むしろ、DBから動的に作成されます。 –

+0

投稿コードサンプル –

0

ようeckbox ...あなたが必要な追加します。また、無効にするオプションもあります。サイト上の例を見ても気になりませんでしたか?これは簡単に見つかりました。

{ 
    key: 'radiobutton1', 
    templateOptions: { 
     required: true, 
     label: 'Please make a selection', 
     options: [{value: 'Steak', id: 'steak'}, {value: 'Lobster', id: 'lobster'}] 
    } 
} 
+0

必須の例:docsに表示されるtrueは、入力:入力を参照します。はい、私はラジオボタンにこの機能を適用しようとしましたが、私はそうしたときに「チェッカーは関数ではありません」というエラーを受け取ります。私は初心者で何かを見落としているかもしれませんが、投稿する前にドキュメントを試して読んでいます。私の努力があなたに迷惑をかけているなら、私の質問に答える必要はありません。 –

+0

ラジオボタンでも同じ動作をします。 templateOptionsにあることを確認してください – MattE

+0

ありがとうございます。上記のエラーが表示されます。問題をよりよく反映するように質問を更新しました。 –

関連する問題