5

特定の「製品」オブジェクトとそのフィールドから動的に構築されている HTML フォームがあり、ユーザーは関連データを変更できます。カスタムの「エディター」ディレクティブを使用して、ユーザーがデータを更新できるようにするために必要な HTML 要素の作成を処理しています。

ここで例を見ることができます: http://plnkr.co/edit/2fAVVpwTHFgxwTq4eAMI

まず、これがこれを達成するための最良の方法であるかどうかはわかりませんが、(これまでのところ) うまく機能しているようです。(他のアイデアも大歓迎です!)

ただし、コントロールに検証ルールを追加したい。require入力が空のままの場合にメッセージが表示されるようにします。これらの検証ルールをコードに追加しようとしました (ディレクティブのテンプレートに見られるように) が、起動しません。スコープがどこかでワイヤークロスされていることと関係があると確信しています... AngularJS Batarangはメインスコープで次のオブジェクトを表示しています:

form: {
  {{fieldName}}: {}
}

これは明らかに間違っています (そしてナンセンスです!)

4

2 に答える 2

-3

form[fieldName].$dirty && form[fieldName].$invalidモデル値の存在をチェックするだけでなく、チェックする代わりに

textTemplate は以下のようになります

textTemplate =  '<input id="{{fieldName}}" name="{{fieldName}}" type="text" ng-model="fieldData.data">' +
    '<div ng-show="!fieldData.data">Invalid:' +
        '<span ng-show="!fieldData.data">Some validation error!</span>' +
    '</div>';

http://plnkr.co/edit/BvXkGxA0GlGip7KLXUup?p=previewで更新された変更を参照してください。

于 2013-08-12T12:10:27.803 に答える