ダーティ チェック モデルの更新で見たものとは異なるアプローチを持つ angularJS を理解しようとしました。
基本的に、要素をドラッグ可能にするディレクティブがあります。 ng-draggable
この要素のそれぞれに属性と(モデルにリンクされた要素の位置) をリンクするモデルがあり、ディレクティブでモデルを更新する必要があります。x
y
そのために$apply
、ディレクティブで関数を使用して、モデル値 x と y を設定しようとしました。次に、$observe
関数を使用してビューを更新します。これが私の jsfiddleです。(マウスイベントをキャッチするためにファクトリを使用していることに注意してください)
var mousemove = function(event) {
var y = event.screenY - startY;
var x = event.screenX - startX;
scope.$apply(function(){
attr.$set('ngModel', {'x': x, 'y': y});
});
}
それはうまくいくようです。ただし、保存ボタンでモデル値を確認すると (コンソールにモデルが出力されます)、位置 x と y は更新されません。
だから私の質問は、どうすればそれを機能させることができるのですか? そして、より一般的には、ここで何が起こっているのでしょうか? angularJSのMVCパターンに関する読書の提案(開発者ガイドは初心者にとって少し厳しいことがわかりました)
ご協力ありがとうございました。