Вы можете сделать это двумя способами:
1. Создание и использование AngularJS службы:
Вот полный пример того, как создать AngularJS службы и использовать AngularJS Service Mehtod в разные Контроллеры:
//AngularJS Module
var app = angular.module("Demo", ["ngRoute"])
//AngularJS Route Config
app.config(function($routeProvider, $locationProvider) {
$routeProvider.caseInsensitiveMatch = true;
$routeProvider.when("/products/details/:id",
{
templateUrl: "Temaplates/details.html",
controller: "productDetailsController"
})
.when("/products/edit/:id",
{
templateUrl: "Temaplates/edit.html",
controller: "productEditController"
})
// AngularJS Service
app.factory('productService', function ($http, $routeParams) {
return {
getDataById: function() {
//return promise from here
return $http.get("http://localhost:43618/api/Products", {
params: { id: $routeParams.id }
});
}
};
});
// AngularJS Controllers Where Service Method has been used
app.controller("productDetailsController", function ($scope, $http, $routeParams, $location, productService) {
$scope.message = "Product Details";
productService.getDataById().then(function (response) {
$scope.product = response.data;
}, function (error) {
console.log("Error occured ", error);
});
});
.controller("productEditController", function ($scope, $http, $routeParams, $location, productService) {
$scope.message = "Edit Page";
$scope.product = {};
productService.getDataById().then(function (response) {
$scope.product = response.data;
}, function (error) {
console.log("Error occured ", error);
});
$scope.updateProduct = function (product) {
$http({
method: "PUT",
url: "http://localhost:43618/api/Products",
params: { id: $routeParams.id },
data: product
})
.success(function() {
alert("Product Updated Successfully");
$location.path('/products');
});
}
})
2. Использование rootScope объекта
Но есть проблема с использованием объекта rootScope, а именно: всякий раз, когда вы обновляете объект rootScope, страница будет потеряна.
Так что всегда лучше использовать AngularJS Service над rootScope
Вы можете использовать '$ rootScope' –
... или рассмотреть возможность использования услуги, если вы wan't разделить логику между контроллерами. – naeramarth7
@JyothiBabuAraja $ rootScope не работает – Kaker