食品のリストが$scope.raw
にあります。このデータを列に表示したいので、構造を少し変更しています。私はこれをsortStuff()
関数で行い、更新されたデータを$scope.allfood
に格納します。
$scope.$watch('raw', function(){
$scope.allfood = $scope.sortStuff();
console.log($scope.allfood);
}, true);
これは食べ物が周りにドラッグされたときに何が起こるかです::$scope.raw
でsortStuff()
たびに何の変更を呼び出す$の時計は、(私は食品のカテゴリを変更するには、ドラッグ&ドロップを使用しています)があります
receive:function(event, ui) {
var issueScope = angular.element(ui.item).scope();
scope.$apply(function() {
var recp = _.find(scope.raw, function(lineitem){
return lineitem.name === issueScope.receipe.name;
})
recp.cat = scope.col.name;
})
$(ui.item).remove(); // remove DOM
}
基本的には、$scope.raw
の中の正しいオブジェクトを検索し、cat
を食品の新しいカテゴリに変更します。また、ng-repeatを数えてビューを更新するので、dom要素も削除します。これはうまくいくようです:$ watchの中のconsole.logは、オブジェクトが正しいカテゴリに移動されていることを示し、データはそのように見えます。しかし、視覚的には、ng-repeatはデータを反映しません。
BからCへの項目のドラッグは問題ありません。 AからBにドラッグすると、Bからの2つの項目が消えます。結果は非常に矛盾しており、何が起きているのか分かりません。
何が問題になりますか?これを行うためのよりよい方法のための、あるいは何か提案がありますか?
あなたは$ watchCollectionを使用する必要があります( '生' 関数(){});私はそれをやっていると私のアプリで同じ問題を見ている... – philwills