Reputation: 153
I have routing config like following
var app = angular.module("productApp",["ngRoute"]);
app.config(function($routeProvider){
$routeProvider.when("/",
{
templateUrl : "views/home.html",
controller : "homeController"
}).
when("/add/:productId?",
{
templateUrl : "views/products/add.html",
controller : "productController",
resolve : {
checkId: function($q,$timeout,$http,$route,$location){
var defer = $q.defer();
var productData = {};
var productId = $route.current.params.productId;
$http.get("model/checkProductById.php?productId="+productId).then(function(data){
if(data.data.status==1){
productData = data.data.data;
// console.log("afterthis");
// console.log(productData);
defer.resolve(productData);
return productData;
}else{
//defer.reject();
$location.path("/");
}
});
return defer.promise;
}
}
}).
when("/products",
{
templateUrl: "views/products/view.html",
controller: "productController"
});
});
app.controller("homeController",function($scope){
$scope.model = {
message:"Hello World"
};
});
Check Id in resolve check if product id is valid via $http service.I also checking and returning product object in resolve object.
My controller :
app.controller("productController",function($scope, $http,productService,$routeParams,checkId){
$scope.productId = $routeParams.productId;
$scope.model = {
message:"Hello World from products"
};
}));
When i pass checkId in controller it giving error of unknown provider. How can i get resolve object in controller.
Thanks
Upvotes: 0
Views: 245
Reputation: 153
Finally get the data via $route with isDefined condition
app.controller("productController",function($scope, $http,productService,$routeParams,$route){
$scope.productId = $routeParams.productId;
$scope.model = {
message:"Hello World from products"
};
if(angular.isDefined($route.current)){
console.log($route.current.locals.checkId);
}
});
Upvotes: 2