最初にここにプランクがあります:http://plnkr.co/edit/2gD0AB。このプランクは発火しないため正しく機能していないようです$scope.$on("$viewContentLoaded")
が、私のマシンでは問題なく機能します。アイデアを理解していただければ幸いです。
私がやろうとしているのは、フィールドオブジェクトを適切なドロップ可能な領域にドラッグするときに、$scope.fields
フィールドオブジェクトをからに移動することです。$scope.groupFields = [], $scope.listFields = [], $scope.dataFields = []
私は、jQueryUIとjQueryUIタッチパンチを使用してこれを行うマネージャーを持っています(モバイルセーフにするため)。
フィールドボックスから空のボックスの1つに要素をドラッグすると、フィールド要素がそれらを残した場所にぶら下がっている以外に、画面上で何も起こらないことに気付くでしょう。ただしconsole.log($scope.fields)
、drop
イベントリスナーでを実行すると、すべてのフィールドオブジェクトが各フィールドボックス内に正しく設定されていることがわかります。
[要素の追加]ボタンをクリックすると、トリガーするだけconsole.log($scope.groupFields);
で、最初に意図したように、突然すべての要素が対応するボックスに正しく表示されます。
私の頭脳を引き出し、しばらくインターネットを検索した後、関数の後にイベント$scope.$apply()
で呼び出されたが、実際に私の問題を修正していることがわかりました。drop
moveField
そして、その理由がわかりません。digest
コントローラで行っていることに基づいて、ビューをすでに実行および更新しているべきではありませんか?
ありがとう!