$ scope.fieldcontainerプロパティの深いグラフとして表示される単一のエンティティのエディターとして機能するWebページがあります。($ resourceを介して)REST APIから応答を受け取った後、 'fieldcontainer'にウォッチを追加します。このウォッチを使用して、ページ/エンティティが「ダーティ」かどうかを検出しています。現在、保存ボタンをバウンスさせていますが、ユーザーがモデルを汚すまで保存ボタンを非表示にしたいのです。
私が取得しているのは、時計の単一トリガーです。これは、.fieldcontainer = ...割り当てが時計を作成した直後に行われるために発生していると思います。最初の誤警報を吸収するために「dirtyCount」プロパティを使用することを考えていましたが、それは非常にハックに感じられます...そしてこれを処理するには「角度慣用的」な方法が必要であると考えました-私だけではありません汚れたモデルを検出するために時計を使用する。
時計を設定するコードは次のとおりです。
$scope.fieldcontainer = Message.get({id: $scope.entityId },
function(message,headers) {
$scope.$watch('fieldcontainer',
function() {
console.log("model is dirty.");
if ($scope.visibility.saveButton) {
$('#saveMessageButtonRow').effect("bounce", { times:5, direction: 'right' }, 300);
}
}, true);
});
「UI(dirtyCount> 0)」で私の「UIダーティ」コードを保護するよりも、これを行うためのよりクリーンな方法があるはずだと考え続けています...
undefined
。これには、モデルの更新ですべての情報が表示されない場合に必要なデフォルト値があります。したがって、一部の値は変更されませんが、トリガーする必要があります。