2015-02-10 12 views
36

मेरे पास एक उत्पाद सूची स्थिति है और उत्पाद मेरे एंगुलर ऐप में संपादित करें/जोड़ें।

उत्पाद सूची डेटा नियंत्रक में लोड हो जाता है (मुझे लगता है कि नहीं था मैं राज्य config में परिभाषित किया जा करने के लिए हल की जरूरत है) जो कि एक ngResource से डेटा प्राप्त:

function InventoryListCtrl (myResource) { 
    var vm = this; 

    myResource.query(function (data) { 
    vm.products = data; 
    }); 
} 

नियंत्रक संपादित करें पर, के बाद मैं एक संपादित उत्पाद मैं इस तरह राज्य सूची वापस पाने:

vm.product.$update().$promise; 
$state.go('productList'); 

यह हमेशा नए डेटा से सूची लोड नहीं करता है, यह आम तौर पर पहली बार चलाने में पुराने आंकड़ों से पता चलता है, तो बाद मैं दूसरी अद्यतन करते हैं और मैन्युअल रूप से राज्य सूची वापस मिल यह प्रत्येक अद्यतन के बाद ताज़ा करना शुरू होता है।

मैं इस की कोशिश की है, लेकिन या तो काम नहीं किया:

vm.product.$update().$promise; 
$state.go('productList', {}, { reload: true }); 

मैं क्या याद आ रही है?

उत्तर

78

मुझे लगता है कि आप नए राज्य लोड कर रहे हैं अद्यतन पूरा कर लिया है से पहले - अद्यतन पूरा होने के बाद करने के लिए राज्य संक्रमण ले जाने का प्रयास:

vm.product.$update().then(function(){ 
    $state.go('productList', {}, { reload: true }); 
}); 
+1

एनजी रिसोर्स विधि के बाद $ वादा लिखने के लिए मेरे हिस्से में यह एक गलती थी। आपका जवाब अन्यथा सही है। धन्यवाद – Bogac

+0

ओपी क्या नहीं पूछ रहा था, लेकिन यह मेरी इच्छा है कि मैंने जल्द ही सीखा होगा। यदि आप केवल एक बच्चे राज्य को पुनः लोड करना चाहते हैं तो आपको यहां दिखाए गए अनुसार "राज्य पुनः नाम" सत्य बदलने की आवश्यकता है: http://stackoverflow.com/questions/25316591/angularjs-ui-router-state -reload-child-state-only/31887658 # 31887658 –

+1

यह आईई (संस्करण 11) – Jerome2606

13

मुझे लगता है कि यह वर्तमान स्थिति ताज़ा के लिए काम करना चाहिए।

$state.go($state.current, {}, {reload: true}); //second parameter is for $stateParams 
+1

पर काम नहीं कर रहा है यह स्वीकार्य उत्तर होना चाहिए। मेरे लिए काम किया –

+2

यह मेरे लिए भी काम करता है, 'ng-click =" $ state.go ('डैशबोर्ड', {}, {पुनः लोड: सत्य}) "एनजी-क्लिक के अंदर लपेटा गया है।" – tommymcdonald

3

मुझे एक सूची के साथ एक ही समस्या थी जब संपादन के बाद ताज़ा नहीं किया गया था। $ Timeout फ़ंक्शन में $ state.go को लपेटने से मेरी समस्या हल हो गई।

$timeout(function(){ 
    $state.go('publishers.list', {}, { reload: true }); 
},200); 
संबंधित मुद्दे