2016-06-16 6 views
1

読み取り専用フィールド:(のみ必要なデータを持つ)特定のユースケースのためのviewmodelsを渡すAngularJS、MVVMと私は私の.NET + AngularJSのアプリケーションの多くを設計

  1. のREST Webサービス。
  2. これらのビューモデルを消費し、特定のビューのPOST操作をサポートするWebサービスメソッドにユーザーが変更した後、同じビューモデルを渡すAngularJSアプリケーション。

フォームビューモデルの一部のフィールドは、しばしば読み込み専用である必要があります。ユーザーはビューモデルを準備してこれらのフィールドを変更することができるので、これが起こらないようにする必要があります。私は、データベースからエンティティを取得し、編集可能でなければならないviewmodelのこれらのフィールドだけに手動でマッピングすることで、バックエンドでアプリケーションを保護します。これは、お尻の痛みと間違いやすいです。これを行うより良い方法はありますか?たぶん私は転記のための別のモデルを作るべきですか?

+0

あなたの読み取り専用フィールドが変更され、返送されることが心配ですか?あなたがそれをあなたに送り返したときにサーバー側を確認できませんか? – Dylan

+0

更新する前にエンティティの編集可能なフィールドのみをマッピングすることでこれを防ぐため、私は心配していません。私はむしろこれを解決するより良い方法があるかどうか疑問に思います。私は明示的に各書き込みマッピングを定義しなければならないので、フィールドマッピングを明示的に定義しなければAutoMapperを使ってこのことを行うことはできません。私は読み取り専用のビューモデルフィールドのカスタム属性を作成し、AutoMapperのマッピング定義でこの属性をチェックすることを考えますが、おそらくあなたはより良いアイデアを持っています。 – devkosiz

答えて

0

一部のフィールドを読み取り専用にする場合。角度コントローラから制御できます。

//In you Angular Controller 
    $scope.readOnlyForm = true; 


//In your HTML angular template 
<input type="text" ng-model="modelName" ng-readonly="readOnlyForm"> 

これは、読み取り専用このフェイルドを行いますそれとも、

ng-disabled="readOnlyForm " 

としてreadOnlyFormは、これらのフィールドは読み取り専用になります真で使用してこれらのfeildsを無効にすることができます。

+0

クライアント側でng-disabledを使用していますが、修正された読み取り専用フィールドを持つポストバックビューモデルから私を保護するものではありません。私はこのサーバー側を防止する必要があります、そして、私の質問は、私がそれをやっているより良い方法か、この場合のいくつかのベストプラクティスかどうかです。 – devkosiz

関連する問題