में प्रतिबिंबित न करने के लिए एनजी-दोहराएं। मेरे पास $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 पर गिन रहा हूं। यह ठीक काम करता प्रतीत होता है: $ watch के अंदर console.log दिखाता है कि ऑब्जेक्ट को सही श्रेणी में ले जाया जा रहा है और डेटा दिखता है कि यह कैसा दिखना चाहिए। हालांकि, दृष्टि से, एनजी-दोहराव डेटा को प्रतिबिंबित नहीं करता है।
बी से सी में किसी आइटम को खींचना ठीक काम करता है। ए को बी से खींचकर, बी से दो आइटम गायब हो जाते हैं ... परिणाम बहुत असंगत होते हैं और मुझे नहीं पता कि क्या हो रहा है।
कोई विचार क्या गलत हो रहा है? या शायद ऐसा करने के बेहतर तरीके के लिए कोई सुझाव?
आप $ watchCollection का उपयोग करना चाहिए ('कच्चे', समारोह() {}); लेकिन मैंने ऐसा किया है और अभी भी मेरे ऐप में एक ही समस्या देख रहा हूं ... – philwills