1

フィールドレベルの変更追跡の経験がある人がいるかどうか疑問に思っていますか? 私たちは、エンド ユーザーによるあらゆるモデルの変更を追跡するための最も簡単で最良の方法を見極めようとしています。ASP.NET MVC4、Knockout、および Knockout Editables を使用しています。

更新: 追跡機能の要件により、オブジェクトが汚れているかどうかを検出するだけでは不十分です。何が変更され、どの値が変更されたかを判断する必要があります。for ループを使用してモデル プロパティを反復処理し、KO Editables.hasChanges() 関数で変更を検出し、現在の値と .oldValue() (KO Editable) を使用してそれからカスタム ログ オブジェクトを構築することにしました。

4

4 に答える 4

8

KnockoutJSを使用して変更追跡を実装するための最も簡単で最良の方法が必要だとおっしゃっていたので、JohnPapaがPluralsightのシングルページアプリコースの一部として最近実装したものを確認することをお勧めします。詳細については、変更の追跡に関する彼のブログ投稿(下部のリンク)を読むことができます。

その要点は次のとおりです。彼は、HansFjällemarkとともに、Steve Sanderson(KnockoutJS作成者)とRyan Niemeyer(KnockoutJSコア寄稿者)からのヒントを使用して、カスタム変更追跡ツールDirtyFlagを作成しました。DirtyFlagはKoLiteライブラリの一部として利用可能であり、githubまたはNuGet:Install-PackageKoLiteからダウンロードできます。

ブログ投稿には、起動して実行するために必要なすべての手順が含まれています。

http://www.johnpapa.net/spapost10/

于 2012-11-06T18:42:49.503 に答える
1

これは Ryan Niemeyer がそのような機能を実装した記事です: http://www.knockmeout.net/2011/05/creating-smart-dirty-flag-in-knockoutjs.html

于 2012-11-06T17:53:23.007 に答える
0

追跡機能の要件により、オブジェクトが汚れているかどうかを検出するだけでは十分ではありません。for ループを使用してモデル プロパティを反復処理し、KO Editables .hasChanges() 関数で変更を検出し、現在の値と .oldValue() (KO Editable) を使用してそれからカスタム ログ オブジェクトを構築することにしました。

于 2012-11-06T20:55:21.627 に答える