मैं एनजी-व्यू से यूई-व्यू में माइग्रेट कर रहा हूं।एंगुलरजेएस: यूई-राउटर सफलता पर रीडायरेक्ट दृश्य और नई सामग्री के साथ स्कोप रीफ्रेश करें
मेरे नियंत्रक में, सफल बनाने/अपडेट/हटाए जाने पर, मैं नए अपडेट/निर्मित/हटाए गए डेटा के साथ एक इंडेक्स व्यू पर रीडायरेक्ट करना चाहता हूं।
मैं वर्तमान में $state.go
का उपयोग करके ऐसा करता हूं।
app.controller('AdminSupplierCreateController', ['$scope', '$state', 'Supplier',
function ($scope, $state, Supplier) {
$scope.h1 = "Register a new Supplier";
$scope.store = function()
{
Supplier.post($scope.supplier)
.then(
function() {
console.log("Successfully Created Supplier");
$state.go('admin.supplier');
},
function(response) {
console.log("Error with status code: " + response.status);
}
);
};
}]);
समस्या यह है कि जब $ राज्य बदल जाता है, तो दायरा अद्यतन नहीं होता है। ऐसा लगता है कि मूल admin.supplier
स्कोप डेटा रीफ्रेश नहीं किया जा रहा है।
मैंनेमें दायरे को सेट करने से पहले $state.reload()
के साथ ui-view
को रीफ्रेश करने का प्रयास किया है।
app.controller('AdminSupplierIndexController', ['$scope', '$state', 'suppliers',
function ($scope, $state, suppliers) {
$state.reload();
$scope.suppliers = suppliers;
}]);
ऐसा करने से, api/v1/suppliers
को पाने के अनुरोध करता है, लेकिन यह वास्तव में, जब तक कि मैं या तो ब्राउज़र पर ताज़ा बटन हिट या मैन्युअल रूप से एक अलग राज्य के लिए नेविगेट अद्यतन गुंजाइश प्रदर्शित नहीं करता है तो फिर से वापस जाएँ।
$stateProvider
...
.state('admin.supplier', {
url : "/supplier",
templateUrl : 'templates/admin/supplier/index.html',
controller: "AdminSupplierIndexController",
resolve: {
suppliers: ['Supplier', function(Supplier) {
return Supplier.getList();
}]
}
})
.state('admin.supplier.create', {
url : "/create",
templateUrl : 'templates/admin/supplier/create.html',
controller: "AdminSupplierCreateController"
})
समाधान:
app.controller('AdminSupplierCreateController', ['$scope', '$state', 'Supplier',
function ($scope, $state, Supplier) {
$scope.h1 = "Register a new Supplier";
$scope.store = function() {
Supplier.post($scope.supplier)
.then(
function() {
console.log("Successfully Created Supplier");
// Force Reload on changing state
$state.go('admin.supplier', {}, {reload: true});
},
function(response) {
console.log("Error with status code: ", response.status);
}
);
};
}]);
बहुत धन्यवाद। इसका उपयोग करके हल किया गया: '$ state.go ('admin.supplier', {}, {reload: true});' Supplier.post' – Gravy
की सफलता कॉलबैक में यह वास्तव में मदद करता है और ठीक उसी तरह काम करता है जैसा कि मैं इसकी अपेक्षा कर रहा था सेवा मेरे। – carbontwelve